/*
 * Copyright 2018 JDCLOUD.COM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Live-Video
 * 视频直播相关接口
 *
 * OpenAPI spec version: v1
 * Contact: 
 *
 * NOTE: This class is auto generated by the jdcloud code generator program.
 */


using JDCloudSDK.Core.Auth;
using JDCloudSDK.Core.Client;
using JDCloudSDK.Core.Http;
using JDCloudSDK.Live.Apis;
using JDCloudSDK.Live.Model;
using System;
using System.Collections.Generic;
using System.Text;
#if NET40||NET35
#else
using System.Threading.Tasks;
#endif

namespace JDCloudSDK.Live.Client
{
    /// <summary>
    ///  Live-Video
    ///  视频直播相关接口
    ///  Live Api 客户端
    ///</summary>
    public class LiveClient : JdcloudClient
    {

        /// <summary>
        ///  默认私有构造函数
        /// </summary>
        private LiveClient()
        {

        }

        /// <summary>
        /// 默认构造函数
        /// </summary>
        /// <param name="credentialsProvider">认证信息</param>
        /// <param name="httpRequestConfig">http 客户端配置信息</param>
        /// <param name="environment">sdk 环境配置信息</param>
        public LiveClient(CredentialsProvider credentialsProvider, HttpRequestConfig httpRequestConfig,SDKEnvironment environment)
        {
            this.httpRequestConfig = httpRequestConfig;
            this.credentialsProvider = credentialsProvider;
            this.environment = environment;
        }

        /// <summary>
        /// 默认构造函数
        /// </summary>
        /// <param name="httpRequestConfig">http 客户端配置信息</param>
        /// <param name="credentialsProvider">认证信息</param>
        public LiveClient(CredentialsProvider credentialsProvider,HttpRequestConfig httpRequestConfig)
        {
            this.httpRequestConfig = httpRequestConfig;
            this.credentialsProvider = credentialsProvider;
        }

        /// <summary>
        /// 默认构造函数，
        /// 注意如果使用此方法 httpRequestConfig 使用的http 请求 schema 为Https
        /// </summary>
        /// <param name="credentialsProvider">认证信息</param>
        public LiveClient(CredentialsProvider credentialsProvider)
        {
            this.credentialsProvider = credentialsProvider;
        }

        /// <summary>
        ///  版本号 1.2.8
        ///</summary>
        public const string ClientVersion = "1.2.8";

        private const string apiVersion = "v1";
        private const string userAgentPrefix = "JdcloudSdkDotNet";
        private const string defaultEndpoint = "live.jdcloud-api.com";
        private const string serviceName = "live";
        private const string userAgent = userAgentPrefix + "/" + ClientVersion + " " + serviceName + "/" + apiVersion;


        private SDKEnvironment environment = new SDKEnvironment(defaultEndpoint);
        private CredentialsProvider credentialsProvider;
        private HttpRequestConfig httpRequestConfig;

        /// <summary>
        ///  获取证书信息
        ///</summary>
        public override CredentialsProvider CredentialsProvider   { get { return credentialsProvider; } }

        /// <summary>
        ///  获取http 客户端配置信息
        ///</summary>
        public override HttpRequestConfig HttpRequestConfig { get { return httpRequestConfig; } }

        /// <summary>
        ///  获取sdk环境配置信息
        ///</summary>
        public override SDKEnvironment SDKEnvironment { get { return environment; } }

        /// <summary>
        ///  获取用户自定义浏览器识别字符串
        ///</summary>
        public override string UserAgent { get { return userAgent; } }

        /// <summary>
        ///  获取服务名称
        ///</summary>
        public override string ServiceName { get { return serviceName; } }

        /// <summary>
        ///  获取版本号
        ///</summary>
        public override string Version { get { return apiVersion; } }



#if NET40||NET35
        /// <summary>
        ///  添加域名翻译配置
        /// - 添加域名级别的翻译模板配置
        /// - 一个域名最多可绑定一个翻译模板
        /// - 重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamDomainTranslateResponse AddLiveStreamDomainTranslate(AddLiveStreamDomainTranslateRequest request) {
            return  new AddLiveStreamDomainTranslateExecutor().Client(this).Execute<AddLiveStreamDomainTranslateResponse, AddLiveStreamDomainTranslateResult, AddLiveStreamDomainTranslateRequest>(request);
        }
#else
        /// <summary>
        ///  添加域名翻译配置
        /// - 添加域名级别的翻译模板配置
        /// - 一个域名最多可绑定一个翻译模板
        /// - 重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamDomainTranslateResponse> AddLiveStreamDomainTranslate(AddLiveStreamDomainTranslateRequest request) {
            return await new AddLiveStreamDomainTranslateExecutor().Client(this).Execute<AddLiveStreamDomainTranslateResponse, AddLiveStreamDomainTranslateResult, AddLiveStreamDomainTranslateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询在线流列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeDomainOnlineStreamResponse DescribeDomainOnlineStream(DescribeDomainOnlineStreamRequest request) {
            return  new DescribeDomainOnlineStreamExecutor().Client(this).Execute<DescribeDomainOnlineStreamResponse, DescribeDomainOnlineStreamResult, DescribeDomainOnlineStreamRequest>(request);
        }
#else
        /// <summary>
        ///  查询在线流列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeDomainOnlineStreamResponse> DescribeDomainOnlineStream(DescribeDomainOnlineStreamRequest request) {
            return await new DescribeDomainOnlineStreamExecutor().Client(this).Execute<DescribeDomainOnlineStreamResponse, DescribeDomainOnlineStreamResult, DescribeDomainOnlineStreamRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询URL播放排行
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeUrlRankingResponse DescribeUrlRanking(DescribeUrlRankingRequest request) {
            return  new DescribeUrlRankingExecutor().Client(this).Execute<DescribeUrlRankingResponse, DescribeUrlRankingResult, DescribeUrlRankingRequest>(request);
        }
#else
        /// <summary>
        ///  查询URL播放排行
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeUrlRankingResponse> DescribeUrlRanking(DescribeUrlRankingRequest request) {
            return await new DescribeUrlRankingExecutor().Client(this).Execute<DescribeUrlRankingResponse, DescribeUrlRankingResult, DescribeUrlRankingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  开启回看
        /// 1、直播回看文件格式仅支持m3u8。
        /// 2、回看时长用户可以配置，最大支持7天，即用户请求回看内容，最多可以请求最近7天的直播回看内容。
        /// 3、域名格式：http://{restartDomain}/{appName}/{streamName}/index.m3u8?starttime&#x3D;1527756680&amp;endtime&#x3D;1527760280 (unix时间戳)
        /// 4、starttime-endtime最长可支持24小时，可跨天
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public OpenLiveRestartResponse OpenLiveRestart(OpenLiveRestartRequest request) {
            return  new OpenLiveRestartExecutor().Client(this).Execute<OpenLiveRestartResponse, OpenLiveRestartResult, OpenLiveRestartRequest>(request);
        }
#else
        /// <summary>
        ///  开启回看
        /// 1、直播回看文件格式仅支持m3u8。
        /// 2、回看时长用户可以配置，最大支持7天，即用户请求回看内容，最多可以请求最近7天的直播回看内容。
        /// 3、域名格式：http://{restartDomain}/{appName}/{streamName}/index.m3u8?starttime&#x3D;1527756680&amp;endtime&#x3D;1527760280 (unix时间戳)
        /// 4、starttime-endtime最长可支持24小时，可跨天
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<OpenLiveRestartResponse> OpenLiveRestart(OpenLiveRestartRequest request) {
            return await new OpenLiveRestartExecutor().Client(this).Execute<OpenLiveRestartResponse, OpenLiveRestartResult, OpenLiveRestartRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加应用质量检测配置
        /// - 添加应用级别的质量检测模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamAppQualityDetectionResponse AddLiveStreamAppQualityDetection(AddLiveStreamAppQualityDetectionRequest request) {
            return  new AddLiveStreamAppQualityDetectionExecutor().Client(this).Execute<AddLiveStreamAppQualityDetectionResponse, AddLiveStreamAppQualityDetectionResult, AddLiveStreamAppQualityDetectionRequest>(request);
        }
#else
        /// <summary>
        ///  添加应用质量检测配置
        /// - 添加应用级别的质量检测模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamAppQualityDetectionResponse> AddLiveStreamAppQualityDetection(AddLiveStreamAppQualityDetectionRequest request) {
            return await new AddLiveStreamAppQualityDetectionExecutor().Client(this).Execute<AddLiveStreamAppQualityDetectionResponse, AddLiveStreamAppQualityDetectionResult, AddLiveStreamAppQualityDetectionRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加直播质量检测模板
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddCustomLiveStreamQualityDetectionTemplateResponse AddCustomLiveStreamQualityDetectionTemplate(AddCustomLiveStreamQualityDetectionTemplateRequest request) {
            return  new AddCustomLiveStreamQualityDetectionTemplateExecutor().Client(this).Execute<AddCustomLiveStreamQualityDetectionTemplateResponse, AddCustomLiveStreamQualityDetectionTemplateResult, AddCustomLiveStreamQualityDetectionTemplateRequest>(request);
        }
#else
        /// <summary>
        ///  添加直播质量检测模板
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddCustomLiveStreamQualityDetectionTemplateResponse> AddCustomLiveStreamQualityDetectionTemplate(AddCustomLiveStreamQualityDetectionTemplateRequest request) {
            return await new AddCustomLiveStreamQualityDetectionTemplateExecutor().Client(this).Execute<AddCustomLiveStreamQualityDetectionTemplateResponse, AddCustomLiveStreamQualityDetectionTemplateResult, AddCustomLiveStreamQualityDetectionTemplateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除直播流状态回调地址
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamNotifyConfigResponse DeleteLiveStreamNotifyConfig(DeleteLiveStreamNotifyConfigRequest request) {
            return  new DeleteLiveStreamNotifyConfigExecutor().Client(this).Execute<DeleteLiveStreamNotifyConfigResponse, DeleteLiveStreamNotifyConfigResult, DeleteLiveStreamNotifyConfigRequest>(request);
        }
#else
        /// <summary>
        ///  删除直播流状态回调地址
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamNotifyConfigResponse> DeleteLiveStreamNotifyConfig(DeleteLiveStreamNotifyConfigRequest request) {
            return await new DeleteLiveStreamNotifyConfigExecutor().Client(this).Execute<DeleteLiveStreamNotifyConfigResponse, DeleteLiveStreamNotifyConfigResult, DeleteLiveStreamNotifyConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询翻译模板绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeTranslateBindingResponse DescribeTranslateBinding(DescribeTranslateBindingRequest request) {
            return  new DescribeTranslateBindingExecutor().Client(this).Execute<DescribeTranslateBindingResponse, DescribeTranslateBindingResult, DescribeTranslateBindingRequest>(request);
        }
#else
        /// <summary>
        ///  查询翻译模板绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeTranslateBindingResponse> DescribeTranslateBinding(DescribeTranslateBindingRequest request) {
            return await new DescribeTranslateBindingExecutor().Client(this).Execute<DescribeTranslateBindingResponse, DescribeTranslateBindingResult, DescribeTranslateBindingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  开启P2P
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public OpenLiveP2pResponse OpenLiveP2p(OpenLiveP2pRequest request) {
            return  new OpenLiveP2pExecutor().Client(this).Execute<OpenLiveP2pResponse, OpenLiveP2pResult, OpenLiveP2pRequest>(request);
        }
#else
        /// <summary>
        ///  开启P2P
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<OpenLiveP2pResponse> OpenLiveP2p(OpenLiveP2pRequest request) {
            return await new OpenLiveP2pExecutor().Client(this).Execute<OpenLiveP2pResponse, OpenLiveP2pResult, OpenLiveP2pRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播计费账单用量数据
        /// 允许通过条件过滤查询，支持的过滤字段如下：
        ///   - startTime[eq]  账单开始时间
        ///   - endTime[eq]    账单结束时间
        ///   - billType[eq]   账单计费类型
        ///   - userPin[like]  用户PIN
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveBillDataResponse DescribeLiveBillData(DescribeLiveBillDataRequest request) {
            return  new DescribeLiveBillDataExecutor().Client(this).Execute<DescribeLiveBillDataResponse, DescribeLiveBillDataResult, DescribeLiveBillDataRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播计费账单用量数据
        /// 允许通过条件过滤查询，支持的过滤字段如下：
        ///   - startTime[eq]  账单开始时间
        ///   - endTime[eq]    账单结束时间
        ///   - billType[eq]   账单计费类型
        ///   - userPin[like]  用户PIN
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveBillDataResponse> DescribeLiveBillData(DescribeLiveBillDataRequest request) {
            return await new DescribeLiveBillDataExecutor().Client(this).Execute<DescribeLiveBillDataResponse, DescribeLiveBillDataResult, DescribeLiveBillDataRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询用户自定义直播录制模板列表
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeCustomLiveStreamRecordTemplatesResponse DescribeCustomLiveStreamRecordTemplates(DescribeCustomLiveStreamRecordTemplatesRequest request) {
            return  new DescribeCustomLiveStreamRecordTemplatesExecutor().Client(this).Execute<DescribeCustomLiveStreamRecordTemplatesResponse, DescribeCustomLiveStreamRecordTemplatesResult, DescribeCustomLiveStreamRecordTemplatesRequest>(request);
        }
#else
        /// <summary>
        ///  查询用户自定义直播录制模板列表
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeCustomLiveStreamRecordTemplatesResponse> DescribeCustomLiveStreamRecordTemplates(DescribeCustomLiveStreamRecordTemplatesRequest request) {
            return await new DescribeCustomLiveStreamRecordTemplatesExecutor().Client(this).Execute<DescribeCustomLiveStreamRecordTemplatesResponse, DescribeCustomLiveStreamRecordTemplatesResult, DescribeCustomLiveStreamRecordTemplatesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询转码模板绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeTranscodeBindingResponse DescribeTranscodeBinding(DescribeTranscodeBindingRequest request) {
            return  new DescribeTranscodeBindingExecutor().Client(this).Execute<DescribeTranscodeBindingResponse, DescribeTranscodeBindingResult, DescribeTranscodeBindingRequest>(request);
        }
#else
        /// <summary>
        ///  查询转码模板绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeTranscodeBindingResponse> DescribeTranscodeBinding(DescribeTranscodeBindingRequest request) {
            return await new DescribeTranscodeBindingExecutor().Client(this).Execute<DescribeTranscodeBindingResponse, DescribeTranscodeBindingResult, DescribeTranscodeBindingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播直播录制配置
        /// - 录制模板配置按照 域名,应用,流 3级配置添加,以最小的粒度配置生效
        /// - 域名、应用、流 依次粒度递减 即: 域名&gt;应用&gt;流
        /// - 该查询旨在查询域名、应用、流最终生效的录制模板配置,并非各级的模板绑定情况
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeCustomLiveStreamRecordConfigResponse DescribeCustomLiveStreamRecordConfig(DescribeCustomLiveStreamRecordConfigRequest request) {
            return  new DescribeCustomLiveStreamRecordConfigExecutor().Client(this).Execute<DescribeCustomLiveStreamRecordConfigResponse, DescribeCustomLiveStreamRecordConfigResult, DescribeCustomLiveStreamRecordConfigRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播直播录制配置
        /// - 录制模板配置按照 域名,应用,流 3级配置添加,以最小的粒度配置生效
        /// - 域名、应用、流 依次粒度递减 即: 域名&gt;应用&gt;流
        /// - 该查询旨在查询域名、应用、流最终生效的录制模板配置,并非各级的模板绑定情况
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeCustomLiveStreamRecordConfigResponse> DescribeCustomLiveStreamRecordConfig(DescribeCustomLiveStreamRecordConfigRequest request) {
            return await new DescribeCustomLiveStreamRecordConfigExecutor().Client(this).Execute<DescribeCustomLiveStreamRecordConfigResponse, DescribeCustomLiveStreamRecordConfigResult, DescribeCustomLiveStreamRecordConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询域名列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveDomainsResponse DescribeLiveDomains(DescribeLiveDomainsRequest request) {
            return  new DescribeLiveDomainsExecutor().Client(this).Execute<DescribeLiveDomainsResponse, DescribeLiveDomainsResult, DescribeLiveDomainsRequest>(request);
        }
#else
        /// <summary>
        ///  查询域名列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveDomainsResponse> DescribeLiveDomains(DescribeLiveDomainsRequest request) {
            return await new DescribeLiveDomainsExecutor().Client(this).Execute<DescribeLiveDomainsResponse, DescribeLiveDomainsResult, DescribeLiveDomainsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加直播应用名
        /// - 需要提前在应用(app)级别绑定功能模板时才需要提前新建应用名
        /// - 新的应用名可以推流时自动创建
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveAppResponse AddLiveApp(AddLiveAppRequest request) {
            return  new AddLiveAppExecutor().Client(this).Execute<AddLiveAppResponse, AddLiveAppResult, AddLiveAppRequest>(request);
        }
#else
        /// <summary>
        ///  添加直播应用名
        /// - 需要提前在应用(app)级别绑定功能模板时才需要提前新建应用名
        /// - 新的应用名可以推流时自动创建
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveAppResponse> AddLiveApp(AddLiveAppRequest request) {
            return await new AddLiveAppExecutor().Client(this).Execute<AddLiveAppResponse, AddLiveAppResult, AddLiveAppRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除应用级别水印模板配置
        /// - 删除应用级别的水印模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamAppWatermarkResponse DeleteLiveStreamAppWatermark(DeleteLiveStreamAppWatermarkRequest request) {
            return  new DeleteLiveStreamAppWatermarkExecutor().Client(this).Execute<DeleteLiveStreamAppWatermarkResponse, DeleteLiveStreamAppWatermarkResult, DeleteLiveStreamAppWatermarkRequest>(request);
        }
#else
        /// <summary>
        ///  删除应用级别水印模板配置
        /// - 删除应用级别的水印模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamAppWatermarkResponse> DeleteLiveStreamAppWatermark(DeleteLiveStreamAppWatermarkRequest request) {
            return await new DeleteLiveStreamAppWatermarkExecutor().Client(this).Execute<DeleteLiveStreamAppWatermarkResponse, DeleteLiveStreamAppWatermarkResult, DeleteLiveStreamAppWatermarkRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播回看播放鉴权KEY
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveRestartAuthKeyResponse DescribeLiveRestartAuthKey(DescribeLiveRestartAuthKeyRequest request) {
            return  new DescribeLiveRestartAuthKeyExecutor().Client(this).Execute<DescribeLiveRestartAuthKeyResponse, DescribeLiveRestartAuthKeyResult, DescribeLiveRestartAuthKeyRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播回看播放鉴权KEY
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveRestartAuthKeyResponse> DescribeLiveRestartAuthKey(DescribeLiveRestartAuthKeyRequest request) {
            return await new DescribeLiveRestartAuthKeyExecutor().Client(this).Execute<DescribeLiveRestartAuthKeyResponse, DescribeLiveRestartAuthKeyResult, DescribeLiveRestartAuthKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播拉流转推任务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryLiveForwardTaskResponse QueryLiveForwardTask(QueryLiveForwardTaskRequest request) {
            return  new QueryLiveForwardTaskExecutor().Client(this).Execute<QueryLiveForwardTaskResponse, QueryLiveForwardTaskResult, QueryLiveForwardTaskRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播拉流转推任务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryLiveForwardTaskResponse> QueryLiveForwardTask(QueryLiveForwardTaskRequest request) {
            return await new QueryLiveForwardTaskExecutor().Client(this).Execute<QueryLiveForwardTaskResponse, QueryLiveForwardTaskResult, QueryLiveForwardTaskRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播流播放人数排行
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamPlayerRankingDataResponse DescribeLiveStreamPlayerRankingData(DescribeLiveStreamPlayerRankingDataRequest request) {
            return  new DescribeLiveStreamPlayerRankingDataExecutor().Client(this).Execute<DescribeLiveStreamPlayerRankingDataResponse, DescribeLiveStreamPlayerRankingDataResult, DescribeLiveStreamPlayerRankingDataRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播流播放人数排行
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamPlayerRankingDataResponse> DescribeLiveStreamPlayerRankingData(DescribeLiveStreamPlayerRankingDataRequest request) {
            return await new DescribeLiveStreamPlayerRankingDataExecutor().Client(this).Execute<DescribeLiveStreamPlayerRankingDataResponse, DescribeLiveStreamPlayerRankingDataResult, DescribeLiveStreamPlayerRankingDataRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询水印模板绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeWatermarkBindingResponse DescribeWatermarkBinding(DescribeWatermarkBindingRequest request) {
            return  new DescribeWatermarkBindingExecutor().Client(this).Execute<DescribeWatermarkBindingResponse, DescribeWatermarkBindingResult, DescribeWatermarkBindingRequest>(request);
        }
#else
        /// <summary>
        ///  查询水印模板绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeWatermarkBindingResponse> DescribeWatermarkBinding(DescribeWatermarkBindingRequest request) {
            return await new DescribeWatermarkBindingExecutor().Client(this).Execute<DescribeWatermarkBindingResponse, DescribeWatermarkBindingResult, DescribeWatermarkBindingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询流分组统计数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStatisticGroupByStreamResponse DescribeLiveStatisticGroupByStream(DescribeLiveStatisticGroupByStreamRequest request) {
            return  new DescribeLiveStatisticGroupByStreamExecutor().Client(this).Execute<DescribeLiveStatisticGroupByStreamResponse, DescribeLiveStatisticGroupByStreamResult, DescribeLiveStatisticGroupByStreamRequest>(request);
        }
#else
        /// <summary>
        ///  查询流分组统计数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStatisticGroupByStreamResponse> DescribeLiveStatisticGroupByStream(DescribeLiveStatisticGroupByStreamRequest request) {
            return await new DescribeLiveStatisticGroupByStreamExecutor().Client(this).Execute<DescribeLiveStatisticGroupByStreamResponse, DescribeLiveStatisticGroupByStreamResult, DescribeLiveStatisticGroupByStreamRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  设置直播录制回调通知
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SetLiveStreamRecordNotifyConfigResponse SetLiveStreamRecordNotifyConfig(SetLiveStreamRecordNotifyConfigRequest request) {
            return  new SetLiveStreamRecordNotifyConfigExecutor().Client(this).Execute<SetLiveStreamRecordNotifyConfigResponse, SetLiveStreamRecordNotifyConfigResult, SetLiveStreamRecordNotifyConfigRequest>(request);
        }
#else
        /// <summary>
        ///  设置直播录制回调通知
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SetLiveStreamRecordNotifyConfigResponse> SetLiveStreamRecordNotifyConfig(SetLiveStreamRecordNotifyConfigRequest request) {
            return await new SetLiveStreamRecordNotifyConfigExecutor().Client(this).Execute<SetLiveStreamRecordNotifyConfigResponse, SetLiveStreamRecordNotifyConfigResult, SetLiveStreamRecordNotifyConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加直播截图模板
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddCustomLiveStreamSnapshotTemplateResponse AddCustomLiveStreamSnapshotTemplate(AddCustomLiveStreamSnapshotTemplateRequest request) {
            return  new AddCustomLiveStreamSnapshotTemplateExecutor().Client(this).Execute<AddCustomLiveStreamSnapshotTemplateResponse, AddCustomLiveStreamSnapshotTemplateResult, AddCustomLiveStreamSnapshotTemplateRequest>(request);
        }
#else
        /// <summary>
        ///  添加直播截图模板
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddCustomLiveStreamSnapshotTemplateResponse> AddCustomLiveStreamSnapshotTemplate(AddCustomLiveStreamSnapshotTemplateRequest request) {
            return await new AddCustomLiveStreamSnapshotTemplateExecutor().Client(this).Execute<AddCustomLiveStreamSnapshotTemplateResponse, AddCustomLiveStreamSnapshotTemplateResult, AddCustomLiveStreamSnapshotTemplateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加流翻译配置
        /// - 添加流级别的翻译模板配置
        /// - 一个流最多可绑定一个翻译模板
        /// - 重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamTranslateResponse AddLiveStreamTranslate(AddLiveStreamTranslateRequest request) {
            return  new AddLiveStreamTranslateExecutor().Client(this).Execute<AddLiveStreamTranslateResponse, AddLiveStreamTranslateResult, AddLiveStreamTranslateRequest>(request);
        }
#else
        /// <summary>
        ///  添加流翻译配置
        /// - 添加流级别的翻译模板配置
        /// - 一个流最多可绑定一个翻译模板
        /// - 重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamTranslateResponse> AddLiveStreamTranslate(AddLiveStreamTranslateRequest request) {
            return await new AddLiveStreamTranslateExecutor().Client(this).Execute<AddLiveStreamTranslateResponse, AddLiveStreamTranslateResult, AddLiveStreamTranslateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  启动域名
        /// - 启用状态为 停用 的直播域名对(推流域名,播放域名)将DomainStatus变更为online
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public StartLiveDomainResponse StartLiveDomain(StartLiveDomainRequest request) {
            return  new StartLiveDomainExecutor().Client(this).Execute<StartLiveDomainResponse, StartLiveDomainResult, StartLiveDomainRequest>(request);
        }
#else
        /// <summary>
        ///  启动域名
        /// - 启用状态为 停用 的直播域名对(推流域名,播放域名)将DomainStatus变更为online
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<StartLiveDomainResponse> StartLiveDomain(StartLiveDomainRequest request) {
            return await new StartLiveDomainExecutor().Client(this).Execute<StartLiveDomainResponse, StartLiveDomainResult, StartLiveDomainRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询推流码率、帧率
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamPublishInfoByPageResponse DescribeLiveStreamPublishInfoByPage(DescribeLiveStreamPublishInfoByPageRequest request) {
            return  new DescribeLiveStreamPublishInfoByPageExecutor().Client(this).Execute<DescribeLiveStreamPublishInfoByPageResponse, DescribeLiveStreamPublishInfoByPageResult, DescribeLiveStreamPublishInfoByPageRequest>(request);
        }
#else
        /// <summary>
        ///  查询推流码率、帧率
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamPublishInfoByPageResponse> DescribeLiveStreamPublishInfoByPage(DescribeLiveStreamPublishInfoByPageRequest request) {
            return await new DescribeLiveStreamPublishInfoByPageExecutor().Client(this).Execute<DescribeLiveStreamPublishInfoByPageResponse, DescribeLiveStreamPublishInfoByPageResult, DescribeLiveStreamPublishInfoByPageRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除流的翻译模板配置
        /// - 删除流级别翻译模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamTranslateResponse DeleteLiveStreamTranslate(DeleteLiveStreamTranslateRequest request) {
            return  new DeleteLiveStreamTranslateExecutor().Client(this).Execute<DeleteLiveStreamTranslateResponse, DeleteLiveStreamTranslateResult, DeleteLiveStreamTranslateRequest>(request);
        }
#else
        /// <summary>
        ///  删除流的翻译模板配置
        /// - 删除流级别翻译模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamTranslateResponse> DeleteLiveStreamTranslate(DeleteLiveStreamTranslateRequest request) {
            return await new DeleteLiveStreamTranslateExecutor().Client(this).Execute<DeleteLiveStreamTranslateResponse, DeleteLiveStreamTranslateResult, DeleteLiveStreamTranslateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询用户定义水印模板列表
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeCustomLiveStreamWatermarkTemplatesResponse DescribeCustomLiveStreamWatermarkTemplates(DescribeCustomLiveStreamWatermarkTemplatesRequest request) {
            return  new DescribeCustomLiveStreamWatermarkTemplatesExecutor().Client(this).Execute<DescribeCustomLiveStreamWatermarkTemplatesResponse, DescribeCustomLiveStreamWatermarkTemplatesResult, DescribeCustomLiveStreamWatermarkTemplatesRequest>(request);
        }
#else
        /// <summary>
        ///  查询用户定义水印模板列表
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeCustomLiveStreamWatermarkTemplatesResponse> DescribeCustomLiveStreamWatermarkTemplates(DescribeCustomLiveStreamWatermarkTemplatesRequest request) {
            return await new DescribeCustomLiveStreamWatermarkTemplatesExecutor().Client(this).Execute<DescribeCustomLiveStreamWatermarkTemplatesResponse, DescribeCustomLiveStreamWatermarkTemplatesResult, DescribeCustomLiveStreamWatermarkTemplatesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加应用转码配置
        /// - 添加应用级别的转码模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamAppTranscodeResponse AddLiveStreamAppTranscode(AddLiveStreamAppTranscodeRequest request) {
            return  new AddLiveStreamAppTranscodeExecutor().Client(this).Execute<AddLiveStreamAppTranscodeResponse, AddLiveStreamAppTranscodeResult, AddLiveStreamAppTranscodeRequest>(request);
        }
#else
        /// <summary>
        ///  添加应用转码配置
        /// - 添加应用级别的转码模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamAppTranscodeResponse> AddLiveStreamAppTranscode(AddLiveStreamAppTranscodeRequest request) {
            return await new AddLiveStreamAppTranscodeExecutor().Client(this).Execute<AddLiveStreamAppTranscodeResponse, AddLiveStreamAppTranscodeResult, AddLiveStreamAppTranscodeRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除截图回调配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamSnapshotNotifyConfigResponse DeleteLiveStreamSnapshotNotifyConfig(DeleteLiveStreamSnapshotNotifyConfigRequest request) {
            return  new DeleteLiveStreamSnapshotNotifyConfigExecutor().Client(this).Execute<DeleteLiveStreamSnapshotNotifyConfigResponse, DeleteLiveStreamSnapshotNotifyConfigResult, DeleteLiveStreamSnapshotNotifyConfigRequest>(request);
        }
#else
        /// <summary>
        ///  删除截图回调配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamSnapshotNotifyConfigResponse> DeleteLiveStreamSnapshotNotifyConfig(DeleteLiveStreamSnapshotNotifyConfigRequest request) {
            return await new DeleteLiveStreamSnapshotNotifyConfigExecutor().Client(this).Execute<DeleteLiveStreamSnapshotNotifyConfigResponse, DeleteLiveStreamSnapshotNotifyConfigResult, DeleteLiveStreamSnapshotNotifyConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  停止直播拉流转推任务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public StopLiveForwardTaskResponse StopLiveForwardTask(StopLiveForwardTaskRequest request) {
            return  new StopLiveForwardTaskExecutor().Client(this).Execute<StopLiveForwardTaskResponse, StopLiveForwardTaskResult, StopLiveForwardTaskRequest>(request);
        }
#else
        /// <summary>
        ///  停止直播拉流转推任务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<StopLiveForwardTaskResponse> StopLiveForwardTask(StopLiveForwardTaskRequest request) {
            return await new StopLiveForwardTaskExecutor().Client(this).Execute<StopLiveForwardTaskResponse, StopLiveForwardTaskResult, StopLiveForwardTaskRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询时移配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveTimeshiftConfigsResponse DescribeLiveTimeshiftConfigs(DescribeLiveTimeshiftConfigsRequest request) {
            return  new DescribeLiveTimeshiftConfigsExecutor().Client(this).Execute<DescribeLiveTimeshiftConfigsResponse, DescribeLiveTimeshiftConfigsResult, DescribeLiveTimeshiftConfigsRequest>(request);
        }
#else
        /// <summary>
        ///  查询时移配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveTimeshiftConfigsResponse> DescribeLiveTimeshiftConfigs(DescribeLiveTimeshiftConfigsRequest request) {
            return await new DescribeLiveTimeshiftConfigsExecutor().Client(this).Execute<DescribeLiveTimeshiftConfigsResponse, DescribeLiveTimeshiftConfigsResult, DescribeLiveTimeshiftConfigsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加应用级别水印配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamAppWatermarkResponse AddLiveStreamAppWatermark(AddLiveStreamAppWatermarkRequest request) {
            return  new AddLiveStreamAppWatermarkExecutor().Client(this).Execute<AddLiveStreamAppWatermarkResponse, AddLiveStreamAppWatermarkResult, AddLiveStreamAppWatermarkRequest>(request);
        }
#else
        /// <summary>
        ///  添加应用级别水印配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamAppWatermarkResponse> AddLiveStreamAppWatermark(AddLiveStreamAppWatermarkRequest request) {
            return await new AddLiveStreamAppWatermarkExecutor().Client(this).Execute<AddLiveStreamAppWatermarkResponse, AddLiveStreamAppWatermarkResult, AddLiveStreamAppWatermarkRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除APP截图配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamAppSnapshotResponse DeleteLiveStreamAppSnapshot(DeleteLiveStreamAppSnapshotRequest request) {
            return  new DeleteLiveStreamAppSnapshotExecutor().Client(this).Execute<DeleteLiveStreamAppSnapshotResponse, DeleteLiveStreamAppSnapshotResult, DeleteLiveStreamAppSnapshotRequest>(request);
        }
#else
        /// <summary>
        ///  删除APP截图配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamAppSnapshotResponse> DeleteLiveStreamAppSnapshot(DeleteLiveStreamAppSnapshotRequest request) {
            return await new DeleteLiveStreamAppSnapshotExecutor().Client(this).Execute<DeleteLiveStreamAppSnapshotResponse, DeleteLiveStreamAppSnapshotResult, DeleteLiveStreamAppSnapshotRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除录制回调配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamRecordNotifyConfigResponse DeleteLiveStreamRecordNotifyConfig(DeleteLiveStreamRecordNotifyConfigRequest request) {
            return  new DeleteLiveStreamRecordNotifyConfigExecutor().Client(this).Execute<DeleteLiveStreamRecordNotifyConfigResponse, DeleteLiveStreamRecordNotifyConfigResult, DeleteLiveStreamRecordNotifyConfigRequest>(request);
        }
#else
        /// <summary>
        ///  删除录制回调配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamRecordNotifyConfigResponse> DeleteLiveStreamRecordNotifyConfig(DeleteLiveStreamRecordNotifyConfigRequest request) {
            return await new DeleteLiveStreamRecordNotifyConfigExecutor().Client(this).Execute<DeleteLiveStreamRecordNotifyConfigResponse, DeleteLiveStreamRecordNotifyConfigResult, DeleteLiveStreamRecordNotifyConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播水印配置
        /// - 水印模板配置按照 域名,应用,流 3级配置添加,以最小的粒度配置生效
        /// - 域名、应用、流 依次粒度递减 即: 域名&gt;应用&gt;流
        /// - 该查询旨在查询域名、应用、流最终生效的水印模板配置,并非各级的模板绑定情况
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeCustomLiveStreamWatermarkConfigResponse DescribeCustomLiveStreamWatermarkConfig(DescribeCustomLiveStreamWatermarkConfigRequest request) {
            return  new DescribeCustomLiveStreamWatermarkConfigExecutor().Client(this).Execute<DescribeCustomLiveStreamWatermarkConfigResponse, DescribeCustomLiveStreamWatermarkConfigResult, DescribeCustomLiveStreamWatermarkConfigRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播水印配置
        /// - 水印模板配置按照 域名,应用,流 3级配置添加,以最小的粒度配置生效
        /// - 域名、应用、流 依次粒度递减 即: 域名&gt;应用&gt;流
        /// - 该查询旨在查询域名、应用、流最终生效的水印模板配置,并非各级的模板绑定情况
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeCustomLiveStreamWatermarkConfigResponse> DescribeCustomLiveStreamWatermarkConfig(DescribeCustomLiveStreamWatermarkConfigRequest request) {
            return await new DescribeCustomLiveStreamWatermarkConfigExecutor().Client(this).Execute<DescribeCustomLiveStreamWatermarkConfigResponse, DescribeCustomLiveStreamWatermarkConfigResult, DescribeCustomLiveStreamWatermarkConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加用户自定义直播录制模板
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddCustomLiveStreamRecordTemplateResponse AddCustomLiveStreamRecordTemplate(AddCustomLiveStreamRecordTemplateRequest request) {
            return  new AddCustomLiveStreamRecordTemplateExecutor().Client(this).Execute<AddCustomLiveStreamRecordTemplateResponse, AddCustomLiveStreamRecordTemplateResult, AddCustomLiveStreamRecordTemplateRequest>(request);
        }
#else
        /// <summary>
        ///  添加用户自定义直播录制模板
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddCustomLiveStreamRecordTemplateResponse> AddCustomLiveStreamRecordTemplate(AddCustomLiveStreamRecordTemplateRequest request) {
            return await new AddCustomLiveStreamRecordTemplateExecutor().Client(this).Execute<AddCustomLiveStreamRecordTemplateResponse, AddCustomLiveStreamRecordTemplateResult, AddCustomLiveStreamRecordTemplateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询(直播or时移)播放鉴权KEY
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLivePlayAuthKeyResponse DescribeLivePlayAuthKey(DescribeLivePlayAuthKeyRequest request) {
            return  new DescribeLivePlayAuthKeyExecutor().Client(this).Execute<DescribeLivePlayAuthKeyResponse, DescribeLivePlayAuthKeyResult, DescribeLivePlayAuthKeyRequest>(request);
        }
#else
        /// <summary>
        ///  查询(直播or时移)播放鉴权KEY
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLivePlayAuthKeyResponse> DescribeLivePlayAuthKey(DescribeLivePlayAuthKeyRequest request) {
            return await new DescribeLivePlayAuthKeyExecutor().Client(this).Execute<DescribeLivePlayAuthKeyResponse, DescribeLivePlayAuthKeyResult, DescribeLivePlayAuthKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询P2P配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveP2pConfigsResponse DescribeLiveP2pConfigs(DescribeLiveP2pConfigsRequest request) {
            return  new DescribeLiveP2pConfigsExecutor().Client(this).Execute<DescribeLiveP2pConfigsResponse, DescribeLiveP2pConfigsResult, DescribeLiveP2pConfigsRequest>(request);
        }
#else
        /// <summary>
        ///  查询P2P配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveP2pConfigsResponse> DescribeLiveP2pConfigs(DescribeLiveP2pConfigsRequest request) {
            return await new DescribeLiveP2pConfigsExecutor().Client(this).Execute<DescribeLiveP2pConfigsResponse, DescribeLiveP2pConfigsResult, DescribeLiveP2pConfigsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询转码时长数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveTranscodingDurationDataResponse DescribeLiveTranscodingDurationData(DescribeLiveTranscodingDurationDataRequest request) {
            return  new DescribeLiveTranscodingDurationDataExecutor().Client(this).Execute<DescribeLiveTranscodingDurationDataResponse, DescribeLiveTranscodingDurationDataResult, DescribeLiveTranscodingDurationDataRequest>(request);
        }
#else
        /// <summary>
        ///  查询转码时长数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveTranscodingDurationDataResponse> DescribeLiveTranscodingDurationData(DescribeLiveTranscodingDurationDataRequest request) {
            return await new DescribeLiveTranscodingDurationDataExecutor().Client(this).Execute<DescribeLiveTranscodingDurationDataResponse, DescribeLiveTranscodingDurationDataResult, DescribeLiveTranscodingDurationDataRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询截图模板绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeSnapshotBindingResponse DescribeSnapshotBinding(DescribeSnapshotBindingRequest request) {
            return  new DescribeSnapshotBindingExecutor().Client(this).Execute<DescribeSnapshotBindingResponse, DescribeSnapshotBindingResult, DescribeSnapshotBindingRequest>(request);
        }
#else
        /// <summary>
        ///  查询截图模板绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeSnapshotBindingResponse> DescribeSnapshotBinding(DescribeSnapshotBindingRequest request) {
            return await new DescribeSnapshotBindingExecutor().Client(this).Execute<DescribeSnapshotBindingResponse, DescribeSnapshotBindingResult, DescribeSnapshotBindingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除用户自定义转码模板
        /// - 删除用户自定义转码模板之前必须先删除此模板在各域名、应用、流级别的转码设置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteCustomLiveStreamTranscodeTemplateResponse DeleteCustomLiveStreamTranscodeTemplate(DeleteCustomLiveStreamTranscodeTemplateRequest request) {
            return  new DeleteCustomLiveStreamTranscodeTemplateExecutor().Client(this).Execute<DeleteCustomLiveStreamTranscodeTemplateResponse, DeleteCustomLiveStreamTranscodeTemplateResult, DeleteCustomLiveStreamTranscodeTemplateRequest>(request);
        }
#else
        /// <summary>
        ///  删除用户自定义转码模板
        /// - 删除用户自定义转码模板之前必须先删除此模板在各域名、应用、流级别的转码设置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteCustomLiveStreamTranscodeTemplateResponse> DeleteCustomLiveStreamTranscodeTemplate(DeleteCustomLiveStreamTranscodeTemplateRequest request) {
            return await new DeleteCustomLiveStreamTranscodeTemplateExecutor().Client(this).Execute<DeleteCustomLiveStreamTranscodeTemplateResponse, DeleteCustomLiveStreamTranscodeTemplateResult, DeleteCustomLiveStreamTranscodeTemplateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除直播拉流转推任务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveForwardTaskResponse DeleteLiveForwardTask(DeleteLiveForwardTaskRequest request) {
            return  new DeleteLiveForwardTaskExecutor().Client(this).Execute<DeleteLiveForwardTaskResponse, DeleteLiveForwardTaskResult, DeleteLiveForwardTaskRequest>(request);
        }
#else
        /// <summary>
        ///  删除直播拉流转推任务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveForwardTaskResponse> DeleteLiveForwardTask(DeleteLiveForwardTaskRequest request) {
            return await new DeleteLiveForwardTaskExecutor().Client(this).Execute<DeleteLiveForwardTaskResponse, DeleteLiveForwardTaskResult, DeleteLiveForwardTaskRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询用户自定义转码模板列表
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeCustomLiveStreamTranscodeTemplatesResponse DescribeCustomLiveStreamTranscodeTemplates(DescribeCustomLiveStreamTranscodeTemplatesRequest request) {
            return  new DescribeCustomLiveStreamTranscodeTemplatesExecutor().Client(this).Execute<DescribeCustomLiveStreamTranscodeTemplatesResponse, DescribeCustomLiveStreamTranscodeTemplatesResult, DescribeCustomLiveStreamTranscodeTemplatesRequest>(request);
        }
#else
        /// <summary>
        ///  查询用户自定义转码模板列表
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeCustomLiveStreamTranscodeTemplatesResponse> DescribeCustomLiveStreamTranscodeTemplates(DescribeCustomLiveStreamTranscodeTemplatesRequest request) {
            return await new DescribeCustomLiveStreamTranscodeTemplatesExecutor().Client(this).Execute<DescribeCustomLiveStreamTranscodeTemplatesResponse, DescribeCustomLiveStreamTranscodeTemplatesResult, DescribeCustomLiveStreamTranscodeTemplatesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播鉴黄张数数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLivePornDataResponse DescribeLivePornData(DescribeLivePornDataRequest request) {
            return  new DescribeLivePornDataExecutor().Client(this).Execute<DescribeLivePornDataResponse, DescribeLivePornDataResult, DescribeLivePornDataRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播鉴黄张数数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLivePornDataResponse> DescribeLivePornData(DescribeLivePornDataRequest request) {
            return await new DescribeLivePornDataExecutor().Client(this).Execute<DescribeLivePornDataResponse, DescribeLivePornDataResult, DescribeLivePornDataRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  停用域名
        /// - 停用直播域名对(推流域名,播放域名),将DomainStatus变更为offline
        /// - 停用该直播域名对后,直播域名信息仍保留,但用户将不能再用该推流域名推流或播放域名播放
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public StopLiveDomainResponse StopLiveDomain(StopLiveDomainRequest request) {
            return  new StopLiveDomainExecutor().Client(this).Execute<StopLiveDomainResponse, StopLiveDomainResult, StopLiveDomainRequest>(request);
        }
#else
        /// <summary>
        ///  停用域名
        /// - 停用直播域名对(推流域名,播放域名),将DomainStatus变更为offline
        /// - 停用该直播域名对后,直播域名信息仍保留,但用户将不能再用该推流域名推流或播放域名播放
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<StopLiveDomainResponse> StopLiveDomain(StopLiveDomainRequest request) {
            return await new StopLiveDomainExecutor().Client(this).Execute<StopLiveDomainResponse, StopLiveDomainResult, StopLiveDomainRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询存储空间数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveFileStorageDataResponse DescribeLiveFileStorageData(DescribeLiveFileStorageDataRequest request) {
            return  new DescribeLiveFileStorageDataExecutor().Client(this).Execute<DescribeLiveFileStorageDataResponse, DescribeLiveFileStorageDataResult, DescribeLiveFileStorageDataRequest>(request);
        }
#else
        /// <summary>
        ///  查询存储空间数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveFileStorageDataResponse> DescribeLiveFileStorageData(DescribeLiveFileStorageDataRequest request) {
            return await new DescribeLiveFileStorageDataExecutor().Client(this).Execute<DescribeLiveFileStorageDataResponse, DescribeLiveFileStorageDataResult, DescribeLiveFileStorageDataRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播中的流的信息
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamOnlineListResponse DescribeLiveStreamOnlineList(DescribeLiveStreamOnlineListRequest request) {
            return  new DescribeLiveStreamOnlineListExecutor().Client(this).Execute<DescribeLiveStreamOnlineListResponse, DescribeLiveStreamOnlineListResult, DescribeLiveStreamOnlineListRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播中的流的信息
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamOnlineListResponse> DescribeLiveStreamOnlineList(DescribeLiveStreamOnlineListRequest request) {
            return await new DescribeLiveStreamOnlineListExecutor().Client(this).Execute<DescribeLiveStreamOnlineListResponse, DescribeLiveStreamOnlineListResult, DescribeLiveStreamOnlineListRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询录制回调配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamRecordNotifyConfigResponse DescribeLiveStreamRecordNotifyConfig(DescribeLiveStreamRecordNotifyConfigRequest request) {
            return  new DescribeLiveStreamRecordNotifyConfigExecutor().Client(this).Execute<DescribeLiveStreamRecordNotifyConfigResponse, DescribeLiveStreamRecordNotifyConfigResult, DescribeLiveStreamRecordNotifyConfigRequest>(request);
        }
#else
        /// <summary>
        ///  查询录制回调配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamRecordNotifyConfigResponse> DescribeLiveStreamRecordNotifyConfig(DescribeLiveStreamRecordNotifyConfigRequest request) {
            return await new DescribeLiveStreamRecordNotifyConfigExecutor().Client(this).Execute<DescribeLiveStreamRecordNotifyConfigResponse, DescribeLiveStreamRecordNotifyConfigResult, DescribeLiveStreamRecordNotifyConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除域名的翻译模板配置
        /// - 删除域名级别翻译模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamDomainTranslateResponse DeleteLiveStreamDomainTranslate(DeleteLiveStreamDomainTranslateRequest request) {
            return  new DeleteLiveStreamDomainTranslateExecutor().Client(this).Execute<DeleteLiveStreamDomainTranslateResponse, DeleteLiveStreamDomainTranslateResult, DeleteLiveStreamDomainTranslateRequest>(request);
        }
#else
        /// <summary>
        ///  删除域名的翻译模板配置
        /// - 删除域名级别翻译模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamDomainTranslateResponse> DeleteLiveStreamDomainTranslate(DeleteLiveStreamDomainTranslateRequest request) {
            return await new DeleteLiveStreamDomainTranslateExecutor().Client(this).Execute<DeleteLiveStreamDomainTranslateResponse, DeleteLiveStreamDomainTranslateResult, DeleteLiveStreamDomainTranslateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加域名截图配置
        /// - 添加域名级别的截图模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamDomainSnapshotResponse AddLiveStreamDomainSnapshot(AddLiveStreamDomainSnapshotRequest request) {
            return  new AddLiveStreamDomainSnapshotExecutor().Client(this).Execute<AddLiveStreamDomainSnapshotResponse, AddLiveStreamDomainSnapshotResult, AddLiveStreamDomainSnapshotRequest>(request);
        }
#else
        /// <summary>
        ///  添加域名截图配置
        /// - 添加域名级别的截图模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamDomainSnapshotResponse> AddLiveStreamDomainSnapshot(AddLiveStreamDomainSnapshotRequest request) {
            return await new AddLiveStreamDomainSnapshotExecutor().Client(this).Execute<AddLiveStreamDomainSnapshotResponse, AddLiveStreamDomainSnapshotResult, AddLiveStreamDomainSnapshotRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播流历史在线人数
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamHistoryUserNumResponse DescribeLiveStreamHistoryUserNum(DescribeLiveStreamHistoryUserNumRequest request) {
            return  new DescribeLiveStreamHistoryUserNumExecutor().Client(this).Execute<DescribeLiveStreamHistoryUserNumResponse, DescribeLiveStreamHistoryUserNumResult, DescribeLiveStreamHistoryUserNumRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播流历史在线人数
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamHistoryUserNumResponse> DescribeLiveStreamHistoryUserNum(DescribeLiveStreamHistoryUserNumRequest request) {
            return await new DescribeLiveStreamHistoryUserNumExecutor().Client(this).Execute<DescribeLiveStreamHistoryUserNumResponse, DescribeLiveStreamHistoryUserNumResult, DescribeLiveStreamHistoryUserNumRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  设置直播流状态回调地址
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SetLiveStreamNotifyConfigResponse SetLiveStreamNotifyConfig(SetLiveStreamNotifyConfigRequest request) {
            return  new SetLiveStreamNotifyConfigExecutor().Client(this).Execute<SetLiveStreamNotifyConfigResponse, SetLiveStreamNotifyConfigResult, SetLiveStreamNotifyConfigRequest>(request);
        }
#else
        /// <summary>
        ///  设置直播流状态回调地址
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SetLiveStreamNotifyConfigResponse> SetLiveStreamNotifyConfig(SetLiveStreamNotifyConfigRequest request) {
            return await new SetLiveStreamNotifyConfigExecutor().Client(this).Execute<SetLiveStreamNotifyConfigResponse, SetLiveStreamNotifyConfigResult, SetLiveStreamNotifyConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  设置直播截图回调通知地址
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SetLiveStreamSnapshotNotifyConfigResponse SetLiveStreamSnapshotNotifyConfig(SetLiveStreamSnapshotNotifyConfigRequest request) {
            return  new SetLiveStreamSnapshotNotifyConfigExecutor().Client(this).Execute<SetLiveStreamSnapshotNotifyConfigResponse, SetLiveStreamSnapshotNotifyConfigResult, SetLiveStreamSnapshotNotifyConfigRequest>(request);
        }
#else
        /// <summary>
        ///  设置直播截图回调通知地址
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SetLiveStreamSnapshotNotifyConfigResponse> SetLiveStreamSnapshotNotifyConfig(SetLiveStreamSnapshotNotifyConfigRequest request) {
            return await new SetLiveStreamSnapshotNotifyConfigExecutor().Client(this).Execute<SetLiveStreamSnapshotNotifyConfigResponse, SetLiveStreamSnapshotNotifyConfigResult, SetLiveStreamSnapshotNotifyConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询域名下的翻译模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveDomainTranslateConfigResponse DescribeLiveDomainTranslateConfig(DescribeLiveDomainTranslateConfigRequest request) {
            return  new DescribeLiveDomainTranslateConfigExecutor().Client(this).Execute<DescribeLiveDomainTranslateConfigResponse, DescribeLiveDomainTranslateConfigResult, DescribeLiveDomainTranslateConfigRequest>(request);
        }
#else
        /// <summary>
        ///  查询域名下的翻译模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveDomainTranslateConfigResponse> DescribeLiveDomainTranslateConfig(DescribeLiveDomainTranslateConfigRequest request) {
            return await new DescribeLiveDomainTranslateConfigExecutor().Client(this).Execute<DescribeLiveDomainTranslateConfigResponse, DescribeLiveDomainTranslateConfigResult, DescribeLiveDomainTranslateConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加域名质量检测配置
        /// - 添加域名级别的质量检测模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamDomainQualityDetectionResponse AddLiveStreamDomainQualityDetection(AddLiveStreamDomainQualityDetectionRequest request) {
            return  new AddLiveStreamDomainQualityDetectionExecutor().Client(this).Execute<AddLiveStreamDomainQualityDetectionResponse, AddLiveStreamDomainQualityDetectionResult, AddLiveStreamDomainQualityDetectionRequest>(request);
        }
#else
        /// <summary>
        ///  添加域名质量检测配置
        /// - 添加域名级别的质量检测模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamDomainQualityDetectionResponse> AddLiveStreamDomainQualityDetection(AddLiveStreamDomainQualityDetectionRequest request) {
            return await new AddLiveStreamDomainQualityDetectionExecutor().Client(this).Execute<AddLiveStreamDomainQualityDetectionResponse, AddLiveStreamDomainQualityDetectionResult, AddLiveStreamDomainQualityDetectionRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  关闭P2P
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CloseLiveP2pResponse CloseLiveP2p(CloseLiveP2pRequest request) {
            return  new CloseLiveP2pExecutor().Client(this).Execute<CloseLiveP2pResponse, CloseLiveP2pResult, CloseLiveP2pRequest>(request);
        }
#else
        /// <summary>
        ///  关闭P2P
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CloseLiveP2pResponse> CloseLiveP2p(CloseLiveP2pRequest request) {
            return await new CloseLiveP2pExecutor().Client(this).Execute<CloseLiveP2pResponse, CloseLiveP2pResult, CloseLiveP2pRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除直播域名
        /// - 请慎重操作（建议在进行域名删除前到域名解析服务商处恢复域名A记录），以免导致删除操作后此域名不可访问。
        ///   deleteLiveDomain调用成功后将删除本条直播域名的全部相关记录，对于仅需要暂停使用该直播域名，推荐stopLiveDomain接口
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveDomainResponse DeleteLiveDomain(DeleteLiveDomainRequest request) {
            return  new DeleteLiveDomainExecutor().Client(this).Execute<DeleteLiveDomainResponse, DeleteLiveDomainResult, DeleteLiveDomainRequest>(request);
        }
#else
        /// <summary>
        ///  删除直播域名
        /// - 请慎重操作（建议在进行域名删除前到域名解析服务商处恢复域名A记录），以免导致删除操作后此域名不可访问。
        ///   deleteLiveDomain调用成功后将删除本条直播域名的全部相关记录，对于仅需要暂停使用该直播域名，推荐stopLiveDomain接口
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveDomainResponse> DeleteLiveDomain(DeleteLiveDomainRequest request) {
            return await new DeleteLiveDomainExecutor().Client(this).Execute<DeleteLiveDomainResponse, DeleteLiveDomainResult, DeleteLiveDomainRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询推流带宽
        /// - 查询某个时间段内的推流上行带宽数据
        /// - 查询1分钟粒度的数据时，时间跨度不超过7天，其他粒度时时间跨度不超过30天
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamPublishBandwidthDataResponse DescribeLiveStreamPublishBandwidthData(DescribeLiveStreamPublishBandwidthDataRequest request) {
            return  new DescribeLiveStreamPublishBandwidthDataExecutor().Client(this).Execute<DescribeLiveStreamPublishBandwidthDataResponse, DescribeLiveStreamPublishBandwidthDataResult, DescribeLiveStreamPublishBandwidthDataRequest>(request);
        }
#else
        /// <summary>
        ///  查询推流带宽
        /// - 查询某个时间段内的推流上行带宽数据
        /// - 查询1分钟粒度的数据时，时间跨度不超过7天，其他粒度时时间跨度不超过30天
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamPublishBandwidthDataResponse> DescribeLiveStreamPublishBandwidthData(DescribeLiveStreamPublishBandwidthDataRequest request) {
            return await new DescribeLiveStreamPublishBandwidthDataExecutor().Client(this).Execute<DescribeLiveStreamPublishBandwidthDataResponse, DescribeLiveStreamPublishBandwidthDataResult, DescribeLiveStreamPublishBandwidthDataRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  恢复直播流推送
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ResumeLiveStreamResponse ResumeLiveStream(ResumeLiveStreamRequest request) {
            return  new ResumeLiveStreamExecutor().Client(this).Execute<ResumeLiveStreamResponse, ResumeLiveStreamResult, ResumeLiveStreamRequest>(request);
        }
#else
        /// <summary>
        ///  恢复直播流推送
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ResumeLiveStreamResponse> ResumeLiveStream(ResumeLiveStreamRequest request) {
            return await new ResumeLiveStreamExecutor().Client(this).Execute<ResumeLiveStreamResponse, ResumeLiveStreamResult, ResumeLiveStreamRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  设置(直播or时移)播放证书
        /// -- 设置成功之后30分钟以内生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SetLiveDomainCertificateResponse SetLiveDomainCertificate(SetLiveDomainCertificateRequest request) {
            return  new SetLiveDomainCertificateExecutor().Client(this).Execute<SetLiveDomainCertificateResponse, SetLiveDomainCertificateResult, SetLiveDomainCertificateRequest>(request);
        }
#else
        /// <summary>
        ///  设置(直播or时移)播放证书
        /// -- 设置成功之后30分钟以内生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SetLiveDomainCertificateResponse> SetLiveDomainCertificate(SetLiveDomainCertificateRequest request) {
            return await new SetLiveDomainCertificateExecutor().Client(this).Execute<SetLiveDomainCertificateResponse, SetLiveDomainCertificateResult, SetLiveDomainCertificateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播截图配置
        /// - 截图模板配置按照 域名,应用,流 3级配置添加,以最小的粒度配置生效
        /// - 域名、应用、流 依次粒度递减 即: 域名&gt;应用&gt;流
        /// - 该查询旨在查询域名、应用、流最终生效的截图模板配置,并非各级的模板绑定情况
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeCustomLiveStreamSnapshotConfigResponse DescribeCustomLiveStreamSnapshotConfig(DescribeCustomLiveStreamSnapshotConfigRequest request) {
            return  new DescribeCustomLiveStreamSnapshotConfigExecutor().Client(this).Execute<DescribeCustomLiveStreamSnapshotConfigResponse, DescribeCustomLiveStreamSnapshotConfigResult, DescribeCustomLiveStreamSnapshotConfigRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播截图配置
        /// - 截图模板配置按照 域名,应用,流 3级配置添加,以最小的粒度配置生效
        /// - 域名、应用、流 依次粒度递减 即: 域名&gt;应用&gt;流
        /// - 该查询旨在查询域名、应用、流最终生效的截图模板配置,并非各级的模板绑定情况
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeCustomLiveStreamSnapshotConfigResponse> DescribeCustomLiveStreamSnapshotConfig(DescribeCustomLiveStreamSnapshotConfigRequest request) {
            return await new DescribeCustomLiveStreamSnapshotConfigExecutor().Client(this).Execute<DescribeCustomLiveStreamSnapshotConfigResponse, DescribeCustomLiveStreamSnapshotConfigResult, DescribeCustomLiveStreamSnapshotConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询质量检测模板绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeQualityDetectionBindingResponse DescribeQualityDetectionBinding(DescribeQualityDetectionBindingRequest request) {
            return  new DescribeQualityDetectionBindingExecutor().Client(this).Execute<DescribeQualityDetectionBindingResponse, DescribeQualityDetectionBindingResult, DescribeQualityDetectionBindingRequest>(request);
        }
#else
        /// <summary>
        ///  查询质量检测模板绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeQualityDetectionBindingResponse> DescribeQualityDetectionBinding(DescribeQualityDetectionBindingRequest request) {
            return await new DescribeQualityDetectionBindingExecutor().Client(this).Execute<DescribeQualityDetectionBindingResponse, DescribeQualityDetectionBindingResult, DescribeQualityDetectionBindingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询回看配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveRestartConfigsResponse DescribeLiveRestartConfigs(DescribeLiveRestartConfigsRequest request) {
            return  new DescribeLiveRestartConfigsExecutor().Client(this).Execute<DescribeLiveRestartConfigsResponse, DescribeLiveRestartConfigsResult, DescribeLiveRestartConfigsRequest>(request);
        }
#else
        /// <summary>
        ///  查询回看配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveRestartConfigsResponse> DescribeLiveRestartConfigs(DescribeLiveRestartConfigsRequest request) {
            return await new DescribeLiveRestartConfigsExecutor().Client(this).Execute<DescribeLiveRestartConfigsResponse, DescribeLiveRestartConfigsResult, DescribeLiveRestartConfigsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询录制模板绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeRecordBindingResponse DescribeRecordBinding(DescribeRecordBindingRequest request) {
            return  new DescribeRecordBindingExecutor().Client(this).Execute<DescribeRecordBindingResponse, DescribeRecordBindingResult, DescribeRecordBindingRequest>(request);
        }
#else
        /// <summary>
        ///  查询录制模板绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeRecordBindingResponse> DescribeRecordBinding(DescribeRecordBindingRequest request) {
            return await new DescribeRecordBindingExecutor().Client(this).Execute<DescribeRecordBindingResponse, DescribeRecordBindingResult, DescribeRecordBindingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询用户自定义转码模板详情
        /// - 查询用户自定义转码模板详情
        /// - 系统标准转码模板
        ///       ld (h.264/640*360/15f)
        ///       sd (h.264/960*540/24f)
        ///       hd (h.264/1280*720/25f)
        ///       shd (h.264/1920*1080/30f)
        ///       ld-265 (h.265/640*360/15f)
        ///       sd-265 (h.265/960*540/24f)
        ///       hd-265 (h.265/1280*720/25f)
        ///       shd-265 (h.265/1920*1080/30f)
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeCustomLiveStreamTranscodeTemplateResponse DescribeCustomLiveStreamTranscodeTemplate(DescribeCustomLiveStreamTranscodeTemplateRequest request) {
            return  new DescribeCustomLiveStreamTranscodeTemplateExecutor().Client(this).Execute<DescribeCustomLiveStreamTranscodeTemplateResponse, DescribeCustomLiveStreamTranscodeTemplateResult, DescribeCustomLiveStreamTranscodeTemplateRequest>(request);
        }
#else
        /// <summary>
        ///  查询用户自定义转码模板详情
        /// - 查询用户自定义转码模板详情
        /// - 系统标准转码模板
        ///       ld (h.264/640*360/15f)
        ///       sd (h.264/960*540/24f)
        ///       hd (h.264/1280*720/25f)
        ///       shd (h.264/1920*1080/30f)
        ///       ld-265 (h.265/640*360/15f)
        ///       sd-265 (h.265/960*540/24f)
        ///       hd-265 (h.265/1280*720/25f)
        ///       shd-265 (h.265/1920*1080/30f)
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeCustomLiveStreamTranscodeTemplateResponse> DescribeCustomLiveStreamTranscodeTemplate(DescribeCustomLiveStreamTranscodeTemplateRequest request) {
            return await new DescribeCustomLiveStreamTranscodeTemplateExecutor().Client(this).Execute<DescribeCustomLiveStreamTranscodeTemplateResponse, DescribeCustomLiveStreamTranscodeTemplateResult, DescribeCustomLiveStreamTranscodeTemplateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  关闭回看
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CloseLiveRestartResponse CloseLiveRestart(CloseLiveRestartRequest request) {
            return  new CloseLiveRestartExecutor().Client(this).Execute<CloseLiveRestartResponse, CloseLiveRestartResult, CloseLiveRestartRequest>(request);
        }
#else
        /// <summary>
        ///  关闭回看
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CloseLiveRestartResponse> CloseLiveRestart(CloseLiveRestartRequest request) {
            return await new CloseLiveRestartExecutor().Client(this).Execute<CloseLiveRestartResponse, CloseLiveRestartResult, CloseLiveRestartRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询转码流信息
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveTranscodeStreamListResponse DescribeLiveTranscodeStreamList(DescribeLiveTranscodeStreamListRequest request) {
            return  new DescribeLiveTranscodeStreamListExecutor().Client(this).Execute<DescribeLiveTranscodeStreamListResponse, DescribeLiveTranscodeStreamListResult, DescribeLiveTranscodeStreamListRequest>(request);
        }
#else
        /// <summary>
        ///  查询转码流信息
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveTranscodeStreamListResponse> DescribeLiveTranscodeStreamList(DescribeLiveTranscodeStreamListRequest request) {
            return await new DescribeLiveTranscodeStreamListExecutor().Client(this).Execute<DescribeLiveTranscodeStreamListResponse, DescribeLiveTranscodeStreamListResult, DescribeLiveTranscodeStreamListRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加应用截图配置
        /// - 添加应用级别的截图模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamAppSnapshotResponse AddLiveStreamAppSnapshot(AddLiveStreamAppSnapshotRequest request) {
            return  new AddLiveStreamAppSnapshotExecutor().Client(this).Execute<AddLiveStreamAppSnapshotResponse, AddLiveStreamAppSnapshotResult, AddLiveStreamAppSnapshotRequest>(request);
        }
#else
        /// <summary>
        ///  添加应用截图配置
        /// - 添加应用级别的截图模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamAppSnapshotResponse> AddLiveStreamAppSnapshot(AddLiveStreamAppSnapshotRequest request) {
            return await new AddLiveStreamAppSnapshotExecutor().Client(this).Execute<AddLiveStreamAppSnapshotResponse, AddLiveStreamAppSnapshotResult, AddLiveStreamAppSnapshotRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播播放证书
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveDomainCertificateResponse DescribeLiveDomainCertificate(DescribeLiveDomainCertificateRequest request) {
            return  new DescribeLiveDomainCertificateExecutor().Client(this).Execute<DescribeLiveDomainCertificateResponse, DescribeLiveDomainCertificateResult, DescribeLiveDomainCertificateRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播播放证书
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveDomainCertificateResponse> DescribeLiveDomainCertificate(DescribeLiveDomainCertificateRequest request) {
            return await new DescribeLiveDomainCertificateExecutor().Client(this).Execute<DescribeLiveDomainCertificateResponse, DescribeLiveDomainCertificateResult, DescribeLiveDomainCertificateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除直播质量检测模板
        /// - 删除质量检测模板前,请先删除此模板相关的质量检测配置,否则无法删除
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteCustomLiveStreamQualityDetectionTemplateResponse DeleteCustomLiveStreamQualityDetectionTemplate(DeleteCustomLiveStreamQualityDetectionTemplateRequest request) {
            return  new DeleteCustomLiveStreamQualityDetectionTemplateExecutor().Client(this).Execute<DeleteCustomLiveStreamQualityDetectionTemplateResponse, DeleteCustomLiveStreamQualityDetectionTemplateResult, DeleteCustomLiveStreamQualityDetectionTemplateRequest>(request);
        }
#else
        /// <summary>
        ///  删除直播质量检测模板
        /// - 删除质量检测模板前,请先删除此模板相关的质量检测配置,否则无法删除
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteCustomLiveStreamQualityDetectionTemplateResponse> DeleteCustomLiveStreamQualityDetectionTemplate(DeleteCustomLiveStreamQualityDetectionTemplateRequest request) {
            return await new DeleteCustomLiveStreamQualityDetectionTemplateExecutor().Client(this).Execute<DeleteCustomLiveStreamQualityDetectionTemplateResponse, DeleteCustomLiveStreamQualityDetectionTemplateResult, DeleteCustomLiveStreamQualityDetectionTemplateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  关闭时移
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CloseLiveTimeshiftResponse CloseLiveTimeshift(CloseLiveTimeshiftRequest request) {
            return  new CloseLiveTimeshiftExecutor().Client(this).Execute<CloseLiveTimeshiftResponse, CloseLiveTimeshiftResult, CloseLiveTimeshiftRequest>(request);
        }
#else
        /// <summary>
        ///  关闭时移
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CloseLiveTimeshiftResponse> CloseLiveTimeshift(CloseLiveTimeshiftRequest request) {
            return await new CloseLiveTimeshiftExecutor().Client(this).Execute<CloseLiveTimeshiftResponse, CloseLiveTimeshiftResult, CloseLiveTimeshiftRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询转码流观看人数
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveTranscodeStreamPlayerUserNumResponse DescribeLiveTranscodeStreamPlayerUserNum(DescribeLiveTranscodeStreamPlayerUserNumRequest request) {
            return  new DescribeLiveTranscodeStreamPlayerUserNumExecutor().Client(this).Execute<DescribeLiveTranscodeStreamPlayerUserNumResponse, DescribeLiveTranscodeStreamPlayerUserNumResult, DescribeLiveTranscodeStreamPlayerUserNumRequest>(request);
        }
#else
        /// <summary>
        ///  查询转码流观看人数
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveTranscodeStreamPlayerUserNumResponse> DescribeLiveTranscodeStreamPlayerUserNum(DescribeLiveTranscodeStreamPlayerUserNumRequest request) {
            return await new DescribeLiveTranscodeStreamPlayerUserNumExecutor().Client(this).Execute<DescribeLiveTranscodeStreamPlayerUserNumResponse, DescribeLiveTranscodeStreamPlayerUserNumResult, DescribeLiveTranscodeStreamPlayerUserNumRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加打点录制任务
        /// - 您可以调用此接口精确提取已录制的文件中所需要的部分
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveRecordTaskResponse AddLiveRecordTask(AddLiveRecordTaskRequest request) {
            return  new AddLiveRecordTaskExecutor().Client(this).Execute<AddLiveRecordTaskResponse, AddLiveRecordTaskResult, AddLiveRecordTaskRequest>(request);
        }
#else
        /// <summary>
        ///  添加打点录制任务
        /// - 您可以调用此接口精确提取已录制的文件中所需要的部分
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveRecordTaskResponse> AddLiveRecordTask(AddLiveRecordTaskRequest request) {
            return await new AddLiveRecordTaskExecutor().Client(this).Execute<AddLiveRecordTaskResponse, AddLiveRecordTaskResult, AddLiveRecordTaskRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加域名水印配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamDomainWatermarkResponse AddLiveStreamDomainWatermark(AddLiveStreamDomainWatermarkRequest request) {
            return  new AddLiveStreamDomainWatermarkExecutor().Client(this).Execute<AddLiveStreamDomainWatermarkResponse, AddLiveStreamDomainWatermarkResult, AddLiveStreamDomainWatermarkRequest>(request);
        }
#else
        /// <summary>
        ///  添加域名水印配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamDomainWatermarkResponse> AddLiveStreamDomainWatermark(AddLiveStreamDomainWatermarkRequest request) {
            return await new AddLiveStreamDomainWatermarkExecutor().Client(this).Execute<AddLiveStreamDomainWatermarkResponse, AddLiveStreamDomainWatermarkResult, AddLiveStreamDomainWatermarkRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询系统默认翻译模板列表
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeSystemLiveStreamTranslateTemplatesResponse DescribeSystemLiveStreamTranslateTemplates(DescribeSystemLiveStreamTranslateTemplatesRequest request) {
            return  new DescribeSystemLiveStreamTranslateTemplatesExecutor().Client(this).Execute<DescribeSystemLiveStreamTranslateTemplatesResponse, DescribeSystemLiveStreamTranslateTemplatesResult, DescribeSystemLiveStreamTranslateTemplatesRequest>(request);
        }
#else
        /// <summary>
        ///  查询系统默认翻译模板列表
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeSystemLiveStreamTranslateTemplatesResponse> DescribeSystemLiveStreamTranslateTemplates(DescribeSystemLiveStreamTranslateTemplatesRequest request) {
            return await new DescribeSystemLiveStreamTranslateTemplatesExecutor().Client(this).Execute<DescribeSystemLiveStreamTranslateTemplatesResponse, DescribeSystemLiveStreamTranslateTemplatesResult, DescribeSystemLiveStreamTranslateTemplatesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  设置直播质量检测回调通知地址
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SetLiveStreamQualityDetectionNotifyConfigResponse SetLiveStreamQualityDetectionNotifyConfig(SetLiveStreamQualityDetectionNotifyConfigRequest request) {
            return  new SetLiveStreamQualityDetectionNotifyConfigExecutor().Client(this).Execute<SetLiveStreamQualityDetectionNotifyConfigResponse, SetLiveStreamQualityDetectionNotifyConfigResult, SetLiveStreamQualityDetectionNotifyConfigRequest>(request);
        }
#else
        /// <summary>
        ///  设置直播质量检测回调通知地址
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SetLiveStreamQualityDetectionNotifyConfigResponse> SetLiveStreamQualityDetectionNotifyConfig(SetLiveStreamQualityDetectionNotifyConfigRequest request) {
            return await new SetLiveStreamQualityDetectionNotifyConfigExecutor().Client(this).Execute<SetLiveStreamQualityDetectionNotifyConfigResponse, SetLiveStreamQualityDetectionNotifyConfigResult, SetLiveStreamQualityDetectionNotifyConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除域名截图配置
        /// - 删除域名级别的截图模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamDomainSnapshotResponse DeleteLiveStreamDomainSnapshot(DeleteLiveStreamDomainSnapshotRequest request) {
            return  new DeleteLiveStreamDomainSnapshotExecutor().Client(this).Execute<DeleteLiveStreamDomainSnapshotResponse, DeleteLiveStreamDomainSnapshotResult, DeleteLiveStreamDomainSnapshotRequest>(request);
        }
#else
        /// <summary>
        ///  删除域名截图配置
        /// - 删除域名级别的截图模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamDomainSnapshotResponse> DeleteLiveStreamDomainSnapshot(DeleteLiveStreamDomainSnapshotRequest request) {
            return await new DeleteLiveStreamDomainSnapshotExecutor().Client(this).Execute<DeleteLiveStreamDomainSnapshotResponse, DeleteLiveStreamDomainSnapshotResult, DeleteLiveStreamDomainSnapshotRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询带宽数据
        /// - 查询某个时间段内的带宽数据（平均带宽）
        /// - 查询1分钟粒度的数据时，时间跨度不超过7天，其他粒度时时间跨度不超过30天
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamBandwidthDataResponse DescribeLiveStreamBandwidthData(DescribeLiveStreamBandwidthDataRequest request) {
            return  new DescribeLiveStreamBandwidthDataExecutor().Client(this).Execute<DescribeLiveStreamBandwidthDataResponse, DescribeLiveStreamBandwidthDataResult, DescribeLiveStreamBandwidthDataRequest>(request);
        }
#else
        /// <summary>
        ///  查询带宽数据
        /// - 查询某个时间段内的带宽数据（平均带宽）
        /// - 查询1分钟粒度的数据时，时间跨度不超过7天，其他粒度时时间跨度不超过30天
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamBandwidthDataResponse> DescribeLiveStreamBandwidthData(DescribeLiveStreamBandwidthDataRequest request) {
            return await new DescribeLiveStreamBandwidthDataExecutor().Client(this).Execute<DescribeLiveStreamBandwidthDataResponse, DescribeLiveStreamBandwidthDataResult, DescribeLiveStreamBandwidthDataRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  日志下载
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeDomainsLogResponse DescribeDomainsLog(DescribeDomainsLogRequest request) {
            return  new DescribeDomainsLogExecutor().Client(this).Execute<DescribeDomainsLogResponse, DescribeDomainsLogResult, DescribeDomainsLogRequest>(request);
        }
#else
        /// <summary>
        ///  日志下载
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeDomainsLogResponse> DescribeDomainsLog(DescribeDomainsLogRequest request) {
            return await new DescribeDomainsLogExecutor().Client(this).Execute<DescribeDomainsLogResponse, DescribeDomainsLogResult, DescribeDomainsLogRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加回看域名
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveRestartDomainResponse AddLiveRestartDomain(AddLiveRestartDomainRequest request) {
            return  new AddLiveRestartDomainExecutor().Client(this).Execute<AddLiveRestartDomainResponse, AddLiveRestartDomainResult, AddLiveRestartDomainRequest>(request);
        }
#else
        /// <summary>
        ///  添加回看域名
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveRestartDomainResponse> AddLiveRestartDomain(AddLiveRestartDomainRequest request) {
            return await new AddLiveRestartDomainExecutor().Client(this).Execute<AddLiveRestartDomainResponse, AddLiveRestartDomainResult, AddLiveRestartDomainRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播回看播放证书
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveRestartDomainCertificateResponse DescribeLiveRestartDomainCertificate(DescribeLiveRestartDomainCertificateRequest request) {
            return  new DescribeLiveRestartDomainCertificateExecutor().Client(this).Execute<DescribeLiveRestartDomainCertificateResponse, DescribeLiveRestartDomainCertificateResult, DescribeLiveRestartDomainCertificateRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播回看播放证书
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveRestartDomainCertificateResponse> DescribeLiveRestartDomainCertificate(DescribeLiveRestartDomainCertificateRequest request) {
            return await new DescribeLiveRestartDomainCertificateExecutor().Client(this).Execute<DescribeLiveRestartDomainCertificateResponse, DescribeLiveRestartDomainCertificateResult, DescribeLiveRestartDomainCertificateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除域名质量检测配置
        /// - 删除域名级别的质量检测模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamDomainQualityDetectionResponse DeleteLiveStreamDomainQualityDetection(DeleteLiveStreamDomainQualityDetectionRequest request) {
            return  new DeleteLiveStreamDomainQualityDetectionExecutor().Client(this).Execute<DeleteLiveStreamDomainQualityDetectionResponse, DeleteLiveStreamDomainQualityDetectionResult, DeleteLiveStreamDomainQualityDetectionRequest>(request);
        }
#else
        /// <summary>
        ///  删除域名质量检测配置
        /// - 删除域名级别的质量检测模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamDomainQualityDetectionResponse> DeleteLiveStreamDomainQualityDetection(DeleteLiveStreamDomainQualityDetectionRequest request) {
            return await new DeleteLiveStreamDomainQualityDetectionExecutor().Client(this).Execute<DeleteLiveStreamDomainQualityDetectionResponse, DeleteLiveStreamDomainQualityDetectionResult, DeleteLiveStreamDomainQualityDetectionRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询推流监控数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribePublishStreamInfoDataResponse DescribePublishStreamInfoData(DescribePublishStreamInfoDataRequest request) {
            return  new DescribePublishStreamInfoDataExecutor().Client(this).Execute<DescribePublishStreamInfoDataResponse, DescribePublishStreamInfoDataResult, DescribePublishStreamInfoDataRequest>(request);
        }
#else
        /// <summary>
        ///  查询推流监控数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribePublishStreamInfoDataResponse> DescribePublishStreamInfoData(DescribePublishStreamInfoDataRequest request) {
            return await new DescribePublishStreamInfoDataExecutor().Client(this).Execute<DescribePublishStreamInfoDataResponse, DescribePublishStreamInfoDataResult, DescribePublishStreamInfoDataRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  禁止直播流推送
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ForbidLiveStreamResponse ForbidLiveStream(ForbidLiveStreamRequest request) {
            return  new ForbidLiveStreamExecutor().Client(this).Execute<ForbidLiveStreamResponse, ForbidLiveStreamResult, ForbidLiveStreamRequest>(request);
        }
#else
        /// <summary>
        ///  禁止直播流推送
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ForbidLiveStreamResponse> ForbidLiveStream(ForbidLiveStreamRequest request) {
            return await new ForbidLiveStreamExecutor().Client(this).Execute<ForbidLiveStreamResponse, ForbidLiveStreamResult, ForbidLiveStreamRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  设置直播回看播放鉴权KEY
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SetLiveRestartAuthKeyResponse SetLiveRestartAuthKey(SetLiveRestartAuthKeyRequest request) {
            return  new SetLiveRestartAuthKeyExecutor().Client(this).Execute<SetLiveRestartAuthKeyResponse, SetLiveRestartAuthKeyResult, SetLiveRestartAuthKeyRequest>(request);
        }
#else
        /// <summary>
        ///  设置直播回看播放鉴权KEY
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SetLiveRestartAuthKeyResponse> SetLiveRestartAuthKey(SetLiveRestartAuthKeyRequest request) {
            return await new SetLiveRestartAuthKeyExecutor().Client(this).Execute<SetLiveRestartAuthKeyResponse, SetLiveRestartAuthKeyResult, SetLiveRestartAuthKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询转码流数量
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveTranscodeStreamNumResponse DescribeLiveTranscodeStreamNum(DescribeLiveTranscodeStreamNumRequest request) {
            return  new DescribeLiveTranscodeStreamNumExecutor().Client(this).Execute<DescribeLiveTranscodeStreamNumResponse, DescribeLiveTranscodeStreamNumResult, DescribeLiveTranscodeStreamNumRequest>(request);
        }
#else
        /// <summary>
        ///  查询转码流数量
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveTranscodeStreamNumResponse> DescribeLiveTranscodeStreamNum(DescribeLiveTranscodeStreamNumRequest request) {
            return await new DescribeLiveTranscodeStreamNumExecutor().Client(this).Execute<DescribeLiveTranscodeStreamNumResponse, DescribeLiveTranscodeStreamNumResult, DescribeLiveTranscodeStreamNumRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询观看人数
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamPlayInfoByPageResponse DescribeLiveStreamPlayInfoByPage(DescribeLiveStreamPlayInfoByPageRequest request) {
            return  new DescribeLiveStreamPlayInfoByPageExecutor().Client(this).Execute<DescribeLiveStreamPlayInfoByPageResponse, DescribeLiveStreamPlayInfoByPageResult, DescribeLiveStreamPlayInfoByPageRequest>(request);
        }
#else
        /// <summary>
        ///  查询观看人数
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamPlayInfoByPageResponse> DescribeLiveStreamPlayInfoByPage(DescribeLiveStreamPlayInfoByPageRequest request) {
            return await new DescribeLiveStreamPlayInfoByPageExecutor().Client(this).Execute<DescribeLiveStreamPlayInfoByPageResponse, DescribeLiveStreamPlayInfoByPageResult, DescribeLiveStreamPlayInfoByPageRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询指定域名相关信息
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveDomainDetailResponse DescribeLiveDomainDetail(DescribeLiveDomainDetailRequest request) {
            return  new DescribeLiveDomainDetailExecutor().Client(this).Execute<DescribeLiveDomainDetailResponse, DescribeLiveDomainDetailResult, DescribeLiveDomainDetailRequest>(request);
        }
#else
        /// <summary>
        ///  查询指定域名相关信息
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveDomainDetailResponse> DescribeLiveDomainDetail(DescribeLiveDomainDetailRequest request) {
            return await new DescribeLiveDomainDetailExecutor().Client(this).Execute<DescribeLiveDomainDetailResponse, DescribeLiveDomainDetailResult, DescribeLiveDomainDetailRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除用户自定义直播截图模板
        /// - 删除截图模板前,请先删除此模板相关的截图配置,否则将会影响线上业务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteCustomLiveStreamSnapshotTemplateResponse DeleteCustomLiveStreamSnapshotTemplate(DeleteCustomLiveStreamSnapshotTemplateRequest request) {
            return  new DeleteCustomLiveStreamSnapshotTemplateExecutor().Client(this).Execute<DeleteCustomLiveStreamSnapshotTemplateResponse, DeleteCustomLiveStreamSnapshotTemplateResult, DeleteCustomLiveStreamSnapshotTemplateRequest>(request);
        }
#else
        /// <summary>
        ///  删除用户自定义直播截图模板
        /// - 删除截图模板前,请先删除此模板相关的截图配置,否则将会影响线上业务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteCustomLiveStreamSnapshotTemplateResponse> DeleteCustomLiveStreamSnapshotTemplate(DeleteCustomLiveStreamSnapshotTemplateRequest request) {
            return await new DeleteCustomLiveStreamSnapshotTemplateExecutor().Client(this).Execute<DeleteCustomLiveStreamSnapshotTemplateResponse, DeleteCustomLiveStreamSnapshotTemplateResult, DeleteCustomLiveStreamSnapshotTemplateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加用户自定义水印模板
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddCustomLiveStreamWatermarkTemplateResponse AddCustomLiveStreamWatermarkTemplate(AddCustomLiveStreamWatermarkTemplateRequest request) {
            return  new AddCustomLiveStreamWatermarkTemplateExecutor().Client(this).Execute<AddCustomLiveStreamWatermarkTemplateResponse, AddCustomLiveStreamWatermarkTemplateResult, AddCustomLiveStreamWatermarkTemplateRequest>(request);
        }
#else
        /// <summary>
        ///  添加用户自定义水印模板
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddCustomLiveStreamWatermarkTemplateResponse> AddCustomLiveStreamWatermarkTemplate(AddCustomLiveStreamWatermarkTemplateRequest request) {
            return await new AddCustomLiveStreamWatermarkTemplateExecutor().Client(this).Execute<AddCustomLiveStreamWatermarkTemplateResponse, AddCustomLiveStreamWatermarkTemplateResult, AddCustomLiveStreamWatermarkTemplateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除用户自定义水印模板
        /// - 删除用户自定义水印模板之前必须先删除此模板在各域名、应用、流级别的水印设置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteCustomLiveStreamWatermarkTemplateResponse DeleteCustomLiveStreamWatermarkTemplate(DeleteCustomLiveStreamWatermarkTemplateRequest request) {
            return  new DeleteCustomLiveStreamWatermarkTemplateExecutor().Client(this).Execute<DeleteCustomLiveStreamWatermarkTemplateResponse, DeleteCustomLiveStreamWatermarkTemplateResult, DeleteCustomLiveStreamWatermarkTemplateRequest>(request);
        }
#else
        /// <summary>
        ///  删除用户自定义水印模板
        /// - 删除用户自定义水印模板之前必须先删除此模板在各域名、应用、流级别的水印设置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteCustomLiveStreamWatermarkTemplateResponse> DeleteCustomLiveStreamWatermarkTemplate(DeleteCustomLiveStreamWatermarkTemplateRequest request) {
            return await new DeleteCustomLiveStreamWatermarkTemplateExecutor().Client(this).Execute<DeleteCustomLiveStreamWatermarkTemplateResponse, DeleteCustomLiveStreamWatermarkTemplateResult, DeleteCustomLiveStreamWatermarkTemplateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除域名级别水印模板配置
        /// - 删除域名级别水印模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamDomainWatermarkResponse DeleteLiveStreamDomainWatermark(DeleteLiveStreamDomainWatermarkRequest request) {
            return  new DeleteLiveStreamDomainWatermarkExecutor().Client(this).Execute<DeleteLiveStreamDomainWatermarkResponse, DeleteLiveStreamDomainWatermarkResult, DeleteLiveStreamDomainWatermarkRequest>(request);
        }
#else
        /// <summary>
        ///  删除域名级别水印模板配置
        /// - 删除域名级别水印模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamDomainWatermarkResponse> DeleteLiveStreamDomainWatermark(DeleteLiveStreamDomainWatermarkRequest request) {
            return await new DeleteLiveStreamDomainWatermarkExecutor().Client(this).Execute<DeleteLiveStreamDomainWatermarkResponse, DeleteLiveStreamDomainWatermarkResult, DeleteLiveStreamDomainWatermarkRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除应用级别录制模板配置
        /// - 删除应用级别的录制模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamAppRecordResponse DeleteLiveStreamAppRecord(DeleteLiveStreamAppRecordRequest request) {
            return  new DeleteLiveStreamAppRecordExecutor().Client(this).Execute<DeleteLiveStreamAppRecordResponse, DeleteLiveStreamAppRecordResult, DeleteLiveStreamAppRecordRequest>(request);
        }
#else
        /// <summary>
        ///  删除应用级别录制模板配置
        /// - 删除应用级别的录制模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamAppRecordResponse> DeleteLiveStreamAppRecord(DeleteLiveStreamAppRecordRequest request) {
            return await new DeleteLiveStreamAppRecordExecutor().Client(this).Execute<DeleteLiveStreamAppRecordResponse, DeleteLiveStreamAppRecordResult, DeleteLiveStreamAppRecordRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除用户自定义录制模板
        /// - 删除用户自定义录制模板之前必须先删除此模板在各域名、应用、流级别的录制设置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteCustomLiveStreamRecordTemplateResponse DeleteCustomLiveStreamRecordTemplate(DeleteCustomLiveStreamRecordTemplateRequest request) {
            return  new DeleteCustomLiveStreamRecordTemplateExecutor().Client(this).Execute<DeleteCustomLiveStreamRecordTemplateResponse, DeleteCustomLiveStreamRecordTemplateResult, DeleteCustomLiveStreamRecordTemplateRequest>(request);
        }
#else
        /// <summary>
        ///  删除用户自定义录制模板
        /// - 删除用户自定义录制模板之前必须先删除此模板在各域名、应用、流级别的录制设置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteCustomLiveStreamRecordTemplateResponse> DeleteCustomLiveStreamRecordTemplate(DeleteCustomLiveStreamRecordTemplateRequest request) {
            return await new DeleteCustomLiveStreamRecordTemplateExecutor().Client(this).Execute<DeleteCustomLiveStreamRecordTemplateResponse, DeleteCustomLiveStreamRecordTemplateResult, DeleteCustomLiveStreamRecordTemplateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除质量检测回调配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamQualityDetectionNotifyConfigResponse DeleteLiveStreamQualityDetectionNotifyConfig(DeleteLiveStreamQualityDetectionNotifyConfigRequest request) {
            return  new DeleteLiveStreamQualityDetectionNotifyConfigExecutor().Client(this).Execute<DeleteLiveStreamQualityDetectionNotifyConfigResponse, DeleteLiveStreamQualityDetectionNotifyConfigResult, DeleteLiveStreamQualityDetectionNotifyConfigRequest>(request);
        }
#else
        /// <summary>
        ///  删除质量检测回调配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamQualityDetectionNotifyConfigResponse> DeleteLiveStreamQualityDetectionNotifyConfig(DeleteLiveStreamQualityDetectionNotifyConfigRequest request) {
            return await new DeleteLiveStreamQualityDetectionNotifyConfigExecutor().Client(this).Execute<DeleteLiveStreamQualityDetectionNotifyConfigResponse, DeleteLiveStreamQualityDetectionNotifyConfigResult, DeleteLiveStreamQualityDetectionNotifyConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  设置直播回看证书
        /// -- 设置成功之后30分钟以内生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SetLiveRestartDomainCertificateResponse SetLiveRestartDomainCertificate(SetLiveRestartDomainCertificateRequest request) {
            return  new SetLiveRestartDomainCertificateExecutor().Client(this).Execute<SetLiveRestartDomainCertificateResponse, SetLiveRestartDomainCertificateResult, SetLiveRestartDomainCertificateRequest>(request);
        }
#else
        /// <summary>
        ///  设置直播回看证书
        /// -- 设置成功之后30分钟以内生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SetLiveRestartDomainCertificateResponse> SetLiveRestartDomainCertificate(SetLiveRestartDomainCertificateRequest request) {
            return await new SetLiveRestartDomainCertificateExecutor().Client(this).Execute<SetLiveRestartDomainCertificateResponse, SetLiveRestartDomainCertificateResult, SetLiveRestartDomainCertificateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播截图张数数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveSnapshotDataResponse DescribeLiveSnapshotData(DescribeLiveSnapshotDataRequest request) {
            return  new DescribeLiveSnapshotDataExecutor().Client(this).Execute<DescribeLiveSnapshotDataResponse, DescribeLiveSnapshotDataResult, DescribeLiveSnapshotDataRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播截图张数数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveSnapshotDataResponse> DescribeLiveSnapshotData(DescribeLiveSnapshotDataRequest request) {
            return await new DescribeLiveSnapshotDataExecutor().Client(this).Execute<DescribeLiveSnapshotDataResponse, DescribeLiveSnapshotDataResult, DescribeLiveSnapshotDataRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除域名级别转码模板配置
        /// - 删除域名级别转码模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamDomainTranscodeResponse DeleteLiveStreamDomainTranscode(DeleteLiveStreamDomainTranscodeRequest request) {
            return  new DeleteLiveStreamDomainTranscodeExecutor().Client(this).Execute<DeleteLiveStreamDomainTranscodeResponse, DeleteLiveStreamDomainTranscodeResult, DeleteLiveStreamDomainTranscodeRequest>(request);
        }
#else
        /// <summary>
        ///  删除域名级别转码模板配置
        /// - 删除域名级别转码模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamDomainTranscodeResponse> DeleteLiveStreamDomainTranscode(DeleteLiveStreamDomainTranscodeRequest request) {
            return await new DeleteLiveStreamDomainTranscodeExecutor().Client(this).Execute<DeleteLiveStreamDomainTranscodeResponse, DeleteLiveStreamDomainTranscodeResult, DeleteLiveStreamDomainTranscodeRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除应用级别质量检测模板配置
        /// - 删除应用级别质量检测模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamAppQualityDetectionResponse DeleteLiveStreamAppQualityDetection(DeleteLiveStreamAppQualityDetectionRequest request) {
            return  new DeleteLiveStreamAppQualityDetectionExecutor().Client(this).Execute<DeleteLiveStreamAppQualityDetectionResponse, DeleteLiveStreamAppQualityDetectionResult, DeleteLiveStreamAppQualityDetectionRequest>(request);
        }
#else
        /// <summary>
        ///  删除应用级别质量检测模板配置
        /// - 删除应用级别质量检测模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamAppQualityDetectionResponse> DeleteLiveStreamAppQualityDetection(DeleteLiveStreamAppQualityDetectionRequest request) {
            return await new DeleteLiveStreamAppQualityDetectionExecutor().Client(this).Execute<DeleteLiveStreamAppQualityDetectionResponse, DeleteLiveStreamAppQualityDetectionResult, DeleteLiveStreamAppQualityDetectionRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除应用的翻译模板配置
        /// - 删除应用级别的翻译模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamAppTranslateResponse DeleteLiveStreamAppTranslate(DeleteLiveStreamAppTranslateRequest request) {
            return  new DeleteLiveStreamAppTranslateExecutor().Client(this).Execute<DeleteLiveStreamAppTranslateResponse, DeleteLiveStreamAppTranslateResult, DeleteLiveStreamAppTranslateRequest>(request);
        }
#else
        /// <summary>
        ///  删除应用的翻译模板配置
        /// - 删除应用级别的翻译模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamAppTranslateResponse> DeleteLiveStreamAppTranslate(DeleteLiveStreamAppTranslateRequest request) {
            return await new DeleteLiveStreamAppTranslateExecutor().Client(this).Execute<DeleteLiveStreamAppTranslateResponse, DeleteLiveStreamAppTranslateResult, DeleteLiveStreamAppTranslateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除域名级别录制模板配置
        /// - 删除域名级别录制模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamDomainRecordResponse DeleteLiveStreamDomainRecord(DeleteLiveStreamDomainRecordRequest request) {
            return  new DeleteLiveStreamDomainRecordExecutor().Client(this).Execute<DeleteLiveStreamDomainRecordResponse, DeleteLiveStreamDomainRecordResult, DeleteLiveStreamDomainRecordRequest>(request);
        }
#else
        /// <summary>
        ///  删除域名级别录制模板配置
        /// - 删除域名级别录制模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamDomainRecordResponse> DeleteLiveStreamDomainRecord(DeleteLiveStreamDomainRecordRequest request) {
            return await new DeleteLiveStreamDomainRecordExecutor().Client(this).Execute<DeleteLiveStreamDomainRecordResponse, DeleteLiveStreamDomainRecordResult, DeleteLiveStreamDomainRecordRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播推流数
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLivePublishStreamNumResponse DescribeLivePublishStreamNum(DescribeLivePublishStreamNumRequest request) {
            return  new DescribeLivePublishStreamNumExecutor().Client(this).Execute<DescribeLivePublishStreamNumResponse, DescribeLivePublishStreamNumResult, DescribeLivePublishStreamNumRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播推流数
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLivePublishStreamNumResponse> DescribeLivePublishStreamNum(DescribeLivePublishStreamNumRequest request) {
            return await new DescribeLivePublishStreamNumExecutor().Client(this).Execute<DescribeLivePublishStreamNumResponse, DescribeLivePublishStreamNumResult, DescribeLivePublishStreamNumRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  更新直播拉流转推任务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateLiveForwardTaskResponse UpdateLiveForwardTask(UpdateLiveForwardTaskRequest request) {
            return  new UpdateLiveForwardTaskExecutor().Client(this).Execute<UpdateLiveForwardTaskResponse, UpdateLiveForwardTaskResult, UpdateLiveForwardTaskRequest>(request);
        }
#else
        /// <summary>
        ///  更新直播拉流转推任务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateLiveForwardTaskResponse> UpdateLiveForwardTask(UpdateLiveForwardTaskRequest request) {
            return await new UpdateLiveForwardTaskExecutor().Client(this).Execute<UpdateLiveForwardTaskResponse, UpdateLiveForwardTaskResult, UpdateLiveForwardTaskRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询系统默认转码模板列表
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeSystemLiveStreamTranscodeTemplatesResponse DescribeSystemLiveStreamTranscodeTemplates(DescribeSystemLiveStreamTranscodeTemplatesRequest request) {
            return  new DescribeSystemLiveStreamTranscodeTemplatesExecutor().Client(this).Execute<DescribeSystemLiveStreamTranscodeTemplatesResponse, DescribeSystemLiveStreamTranscodeTemplatesResult, DescribeSystemLiveStreamTranscodeTemplatesRequest>(request);
        }
#else
        /// <summary>
        ///  查询系统默认转码模板列表
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeSystemLiveStreamTranscodeTemplatesResponse> DescribeSystemLiveStreamTranscodeTemplates(DescribeSystemLiveStreamTranscodeTemplatesRequest request) {
            return await new DescribeSystemLiveStreamTranscodeTemplatesExecutor().Client(this).Execute<DescribeSystemLiveStreamTranscodeTemplatesResponse, DescribeSystemLiveStreamTranscodeTemplatesResult, DescribeSystemLiveStreamTranscodeTemplatesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询地域分组统计数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStatisticGroupByAreaResponse DescribeLiveStatisticGroupByArea(DescribeLiveStatisticGroupByAreaRequest request) {
            return  new DescribeLiveStatisticGroupByAreaExecutor().Client(this).Execute<DescribeLiveStatisticGroupByAreaResponse, DescribeLiveStatisticGroupByAreaResult, DescribeLiveStatisticGroupByAreaRequest>(request);
        }
#else
        /// <summary>
        ///  查询地域分组统计数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStatisticGroupByAreaResponse> DescribeLiveStatisticGroupByArea(DescribeLiveStatisticGroupByAreaRequest request) {
            return await new DescribeLiveStatisticGroupByAreaExecutor().Client(this).Execute<DescribeLiveStatisticGroupByAreaResponse, DescribeLiveStatisticGroupByAreaResult, DescribeLiveStatisticGroupByAreaRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询推流上行流量数据
        /// - 查询某个时间段内的流量数据。
        /// - 查询1分钟粒度的数据时，时间跨度不超过7天，其他粒度时时间跨度不超过30天
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamPublishTrafficDataResponse DescribeLiveStreamPublishTrafficData(DescribeLiveStreamPublishTrafficDataRequest request) {
            return  new DescribeLiveStreamPublishTrafficDataExecutor().Client(this).Execute<DescribeLiveStreamPublishTrafficDataResponse, DescribeLiveStreamPublishTrafficDataResult, DescribeLiveStreamPublishTrafficDataRequest>(request);
        }
#else
        /// <summary>
        ///  查询推流上行流量数据
        /// - 查询某个时间段内的流量数据。
        /// - 查询1分钟粒度的数据时，时间跨度不超过7天，其他粒度时时间跨度不超过30天
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamPublishTrafficDataResponse> DescribeLiveStreamPublishTrafficData(DescribeLiveStreamPublishTrafficDataRequest request) {
            return await new DescribeLiveStreamPublishTrafficDataExecutor().Client(this).Execute<DescribeLiveStreamPublishTrafficDataResponse, DescribeLiveStreamPublishTrafficDataResult, DescribeLiveStreamPublishTrafficDataRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查看推流历史记录
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamPublishListResponse DescribeLiveStreamPublishList(DescribeLiveStreamPublishListRequest request) {
            return  new DescribeLiveStreamPublishListExecutor().Client(this).Execute<DescribeLiveStreamPublishListResponse, DescribeLiveStreamPublishListResult, DescribeLiveStreamPublishListRequest>(request);
        }
#else
        /// <summary>
        ///  查看推流历史记录
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamPublishListResponse> DescribeLiveStreamPublishList(DescribeLiveStreamPublishListRequest request) {
            return await new DescribeLiveStreamPublishListExecutor().Client(this).Execute<DescribeLiveStreamPublishListResponse, DescribeLiveStreamPublishListResult, DescribeLiveStreamPublishListRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  恢复指定流的翻译任务
        /// - 恢复添加实时翻译字幕到指定流
        /// - 指定的流需在线且配置了翻译模板，同时处于翻译暂停状态
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ResumeLiveStreamTranslateResponse ResumeLiveStreamTranslate(ResumeLiveStreamTranslateRequest request) {
            return  new ResumeLiveStreamTranslateExecutor().Client(this).Execute<ResumeLiveStreamTranslateResponse, ResumeLiveStreamTranslateResult, ResumeLiveStreamTranslateRequest>(request);
        }
#else
        /// <summary>
        ///  恢复指定流的翻译任务
        /// - 恢复添加实时翻译字幕到指定流
        /// - 指定的流需在线且配置了翻译模板，同时处于翻译暂停状态
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ResumeLiveStreamTranslateResponse> ResumeLiveStreamTranslate(ResumeLiveStreamTranslateRequest request) {
            return await new ResumeLiveStreamTranslateExecutor().Client(this).Execute<ResumeLiveStreamTranslateResponse, ResumeLiveStreamTranslateResult, ResumeLiveStreamTranslateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加应用级别直播录制配置
        /// - 添加应用级别的直播录制模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamAppRecordResponse AddLiveStreamAppRecord(AddLiveStreamAppRecordRequest request) {
            return  new AddLiveStreamAppRecordExecutor().Client(this).Execute<AddLiveStreamAppRecordResponse, AddLiveStreamAppRecordResult, AddLiveStreamAppRecordRequest>(request);
        }
#else
        /// <summary>
        ///  添加应用级别直播录制配置
        /// - 添加应用级别的直播录制模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamAppRecordResponse> AddLiveStreamAppRecord(AddLiveStreamAppRecordRequest request) {
            return await new AddLiveStreamAppRecordExecutor().Client(this).Execute<AddLiveStreamAppRecordResponse, AddLiveStreamAppRecordResult, AddLiveStreamAppRecordRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加域名级别直播录制配置
        /// - 添加域名级别的直播录制模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamDomainRecordResponse AddLiveStreamDomainRecord(AddLiveStreamDomainRecordRequest request) {
            return  new AddLiveStreamDomainRecordExecutor().Client(this).Execute<AddLiveStreamDomainRecordResponse, AddLiveStreamDomainRecordResult, AddLiveStreamDomainRecordRequest>(request);
        }
#else
        /// <summary>
        ///  添加域名级别直播录制配置
        /// - 添加域名级别的直播录制模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamDomainRecordResponse> AddLiveStreamDomainRecord(AddLiveStreamDomainRecordRequest request) {
            return await new AddLiveStreamDomainRecordExecutor().Client(this).Execute<AddLiveStreamDomainRecordResponse, AddLiveStreamDomainRecordResult, AddLiveStreamDomainRecordRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询地域/运营商分组统计数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStatisticGroupByAreaIspResponse DescribeLiveStatisticGroupByAreaIsp(DescribeLiveStatisticGroupByAreaIspRequest request) {
            return  new DescribeLiveStatisticGroupByAreaIspExecutor().Client(this).Execute<DescribeLiveStatisticGroupByAreaIspResponse, DescribeLiveStatisticGroupByAreaIspResult, DescribeLiveStatisticGroupByAreaIspRequest>(request);
        }
#else
        /// <summary>
        ///  查询地域/运营商分组统计数据
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStatisticGroupByAreaIspResponse> DescribeLiveStatisticGroupByAreaIsp(DescribeLiveStatisticGroupByAreaIspRequest request) {
            return await new DescribeLiveStatisticGroupByAreaIspExecutor().Client(this).Execute<DescribeLiveStatisticGroupByAreaIspResponse, DescribeLiveStatisticGroupByAreaIspResult, DescribeLiveStatisticGroupByAreaIspRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询截图回调配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamSnapshotNotifyConfigResponse DescribeLiveStreamSnapshotNotifyConfig(DescribeLiveStreamSnapshotNotifyConfigRequest request) {
            return  new DescribeLiveStreamSnapshotNotifyConfigExecutor().Client(this).Execute<DescribeLiveStreamSnapshotNotifyConfigResponse, DescribeLiveStreamSnapshotNotifyConfigResult, DescribeLiveStreamSnapshotNotifyConfigRequest>(request);
        }
#else
        /// <summary>
        ///  查询截图回调配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamSnapshotNotifyConfigResponse> DescribeLiveStreamSnapshotNotifyConfig(DescribeLiveStreamSnapshotNotifyConfigRequest request) {
            return await new DescribeLiveStreamSnapshotNotifyConfigExecutor().Client(this).Execute<DescribeLiveStreamSnapshotNotifyConfigResponse, DescribeLiveStreamSnapshotNotifyConfigResult, DescribeLiveStreamSnapshotNotifyConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  开始直播拉流转推任务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public StartLiveForwardTaskResponse StartLiveForwardTask(StartLiveForwardTaskRequest request) {
            return  new StartLiveForwardTaskExecutor().Client(this).Execute<StartLiveForwardTaskResponse, StartLiveForwardTaskResult, StartLiveForwardTaskRequest>(request);
        }
#else
        /// <summary>
        ///  开始直播拉流转推任务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<StartLiveForwardTaskResponse> StartLiveForwardTask(StartLiveForwardTaskRequest request) {
            return await new StartLiveForwardTaskExecutor().Client(this).Execute<StartLiveForwardTaskResponse, StartLiveForwardTaskResult, StartLiveForwardTaskRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询转码模板配置
        /// - 转码模板配置按照 域名,应用,流 3级配置添加,以最小的粒度配置生效原则
        /// - 域名、应用、流 依次粒度递减 即: 域名&gt;应用&gt;流
        /// - 该查询旨在查询域名、应用、流最终生效的转码模板配置,并非各级的模板绑定情况
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamTranscodeConfigResponse DescribeLiveStreamTranscodeConfig(DescribeLiveStreamTranscodeConfigRequest request) {
            return  new DescribeLiveStreamTranscodeConfigExecutor().Client(this).Execute<DescribeLiveStreamTranscodeConfigResponse, DescribeLiveStreamTranscodeConfigResult, DescribeLiveStreamTranscodeConfigRequest>(request);
        }
#else
        /// <summary>
        ///  查询转码模板配置
        /// - 转码模板配置按照 域名,应用,流 3级配置添加,以最小的粒度配置生效原则
        /// - 域名、应用、流 依次粒度递减 即: 域名&gt;应用&gt;流
        /// - 该查询旨在查询域名、应用、流最终生效的转码模板配置,并非各级的模板绑定情况
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamTranscodeConfigResponse> DescribeLiveStreamTranscodeConfig(DescribeLiveStreamTranscodeConfigRequest request) {
            return await new DescribeLiveStreamTranscodeConfigExecutor().Client(this).Execute<DescribeLiveStreamTranscodeConfigResponse, DescribeLiveStreamTranscodeConfigResult, DescribeLiveStreamTranscodeConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  设置(直播or时移)播放鉴权KEY
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SetLivePlayAuthKeyResponse SetLivePlayAuthKey(SetLivePlayAuthKeyRequest request) {
            return  new SetLivePlayAuthKeyExecutor().Client(this).Execute<SetLivePlayAuthKeyResponse, SetLivePlayAuthKeyResult, SetLivePlayAuthKeyRequest>(request);
        }
#else
        /// <summary>
        ///  设置(直播or时移)播放鉴权KEY
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SetLivePlayAuthKeyResponse> SetLivePlayAuthKey(SetLivePlayAuthKeyRequest request) {
            return await new SetLivePlayAuthKeyExecutor().Client(this).Execute<SetLivePlayAuthKeyResponse, SetLivePlayAuthKeyResult, SetLivePlayAuthKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询域名下的APP列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveAppResponse DescribeLiveApp(DescribeLiveAppRequest request) {
            return  new DescribeLiveAppExecutor().Client(this).Execute<DescribeLiveAppResponse, DescribeLiveAppResult, DescribeLiveAppRequest>(request);
        }
#else
        /// <summary>
        ///  查询域名下的APP列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveAppResponse> DescribeLiveApp(DescribeLiveAppRequest request) {
            return await new DescribeLiveAppExecutor().Client(this).Execute<DescribeLiveAppResponse, DescribeLiveAppResult, DescribeLiveAppRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建直播拉流转推任务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateLiveForwardTaskResponse CreateLiveForwardTask(CreateLiveForwardTaskRequest request) {
            return  new CreateLiveForwardTaskExecutor().Client(this).Execute<CreateLiveForwardTaskResponse, CreateLiveForwardTaskResult, CreateLiveForwardTaskRequest>(request);
        }
#else
        /// <summary>
        ///  创建直播拉流转推任务
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateLiveForwardTaskResponse> CreateLiveForwardTask(CreateLiveForwardTaskRequest request) {
            return await new CreateLiveForwardTaskExecutor().Client(this).Execute<CreateLiveForwardTaskResponse, CreateLiveForwardTaskResult, CreateLiveForwardTaskRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询质量检测回调配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamQualityDetectionNotifyConfigResponse DescribeLiveStreamQualityDetectionNotifyConfig(DescribeLiveStreamQualityDetectionNotifyConfigRequest request) {
            return  new DescribeLiveStreamQualityDetectionNotifyConfigExecutor().Client(this).Execute<DescribeLiveStreamQualityDetectionNotifyConfigResponse, DescribeLiveStreamQualityDetectionNotifyConfigResult, DescribeLiveStreamQualityDetectionNotifyConfigRequest>(request);
        }
#else
        /// <summary>
        ///  查询质量检测回调配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamQualityDetectionNotifyConfigResponse> DescribeLiveStreamQualityDetectionNotifyConfig(DescribeLiveStreamQualityDetectionNotifyConfigRequest request) {
            return await new DescribeLiveStreamQualityDetectionNotifyConfigExecutor().Client(this).Execute<DescribeLiveStreamQualityDetectionNotifyConfigResponse, DescribeLiveStreamQualityDetectionNotifyConfigResult, DescribeLiveStreamQualityDetectionNotifyConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  中断直播流推送
        /// - 中断操作1秒后可以继续推流
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public InterruptLiveStreamResponse InterruptLiveStream(InterruptLiveStreamRequest request) {
            return  new InterruptLiveStreamExecutor().Client(this).Execute<InterruptLiveStreamResponse, InterruptLiveStreamResult, InterruptLiveStreamRequest>(request);
        }
#else
        /// <summary>
        ///  中断直播流推送
        /// - 中断操作1秒后可以继续推流
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<InterruptLiveStreamResponse> InterruptLiveStream(InterruptLiveStreamRequest request) {
            return await new InterruptLiveStreamExecutor().Client(this).Execute<InterruptLiveStreamResponse, InterruptLiveStreamResult, InterruptLiveStreamRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加直播域名
        /// - 创建直播域名之前,必须先开通直播服务
        /// - 直播域名必须已经备案完成
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveDomainResponse AddLiveDomain(AddLiveDomainRequest request) {
            return  new AddLiveDomainExecutor().Client(this).Execute<AddLiveDomainResponse, AddLiveDomainResult, AddLiveDomainRequest>(request);
        }
#else
        /// <summary>
        ///  添加直播域名
        /// - 创建直播域名之前,必须先开通直播服务
        /// - 直播域名必须已经备案完成
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveDomainResponse> AddLiveDomain(AddLiveDomainRequest request) {
            return await new AddLiveDomainExecutor().Client(this).Execute<AddLiveDomainResponse, AddLiveDomainResult, AddLiveDomainRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  暂停指定流的翻译任务
        /// - 暂停添加实时翻译字幕到指定流
        /// - 指定的流需在线且配置了翻译模板
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public PauseLiveStreamTranslateResponse PauseLiveStreamTranslate(PauseLiveStreamTranslateRequest request) {
            return  new PauseLiveStreamTranslateExecutor().Client(this).Execute<PauseLiveStreamTranslateResponse, PauseLiveStreamTranslateResult, PauseLiveStreamTranslateRequest>(request);
        }
#else
        /// <summary>
        ///  暂停指定流的翻译任务
        /// - 暂停添加实时翻译字幕到指定流
        /// - 指定的流需在线且配置了翻译模板
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<PauseLiveStreamTranslateResponse> PauseLiveStreamTranslate(PauseLiveStreamTranslateRequest request) {
            return await new PauseLiveStreamTranslateExecutor().Client(this).Execute<PauseLiveStreamTranslateResponse, PauseLiveStreamTranslateResult, PauseLiveStreamTranslateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除录制文件
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveRecordingsResponse DeleteLiveRecordings(DeleteLiveRecordingsRequest request) {
            return  new DeleteLiveRecordingsExecutor().Client(this).Execute<DeleteLiveRecordingsResponse, DeleteLiveRecordingsResult, DeleteLiveRecordingsRequest>(request);
        }
#else
        /// <summary>
        ///  删除录制文件
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveRecordingsResponse> DeleteLiveRecordings(DeleteLiveRecordingsRequest request) {
            return await new DeleteLiveRecordingsExecutor().Client(this).Execute<DeleteLiveRecordingsResponse, DeleteLiveRecordingsResult, DeleteLiveRecordingsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询转码流播放带宽
        /// - 查询1分钟粒度的数据时，时间跨度不超过7天，其他粒度时时间跨度不超过30天
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveTranscodeStreamBandwidthResponse DescribeLiveTranscodeStreamBandwidth(DescribeLiveTranscodeStreamBandwidthRequest request) {
            return  new DescribeLiveTranscodeStreamBandwidthExecutor().Client(this).Execute<DescribeLiveTranscodeStreamBandwidthResponse, DescribeLiveTranscodeStreamBandwidthResult, DescribeLiveTranscodeStreamBandwidthRequest>(request);
        }
#else
        /// <summary>
        ///  查询转码流播放带宽
        /// - 查询1分钟粒度的数据时，时间跨度不超过7天，其他粒度时时间跨度不超过30天
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveTranscodeStreamBandwidthResponse> DescribeLiveTranscodeStreamBandwidth(DescribeLiveTranscodeStreamBandwidthRequest request) {
            return await new DescribeLiveTranscodeStreamBandwidthExecutor().Client(this).Execute<DescribeLiveTranscodeStreamBandwidthResponse, DescribeLiveTranscodeStreamBandwidthResult, DescribeLiveTranscodeStreamBandwidthRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播实时流信息
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamInfoResponse DescribeLiveStreamInfo(DescribeLiveStreamInfoRequest request) {
            return  new DescribeLiveStreamInfoExecutor().Client(this).Execute<DescribeLiveStreamInfoResponse, DescribeLiveStreamInfoResult, DescribeLiveStreamInfoRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播实时流信息
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamInfoResponse> DescribeLiveStreamInfo(DescribeLiveStreamInfoRequest request) {
            return await new DescribeLiveStreamInfoExecutor().Client(this).Execute<DescribeLiveStreamInfoResponse, DescribeLiveStreamInfoResult, DescribeLiveStreamInfoRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播质量检测模板列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeCustomLiveStreamQualityDetectionTemplatesResponse DescribeCustomLiveStreamQualityDetectionTemplates(DescribeCustomLiveStreamQualityDetectionTemplatesRequest request) {
            return  new DescribeCustomLiveStreamQualityDetectionTemplatesExecutor().Client(this).Execute<DescribeCustomLiveStreamQualityDetectionTemplatesResponse, DescribeCustomLiveStreamQualityDetectionTemplatesResult, DescribeCustomLiveStreamQualityDetectionTemplatesRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播质量检测模板列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeCustomLiveStreamQualityDetectionTemplatesResponse> DescribeCustomLiveStreamQualityDetectionTemplates(DescribeCustomLiveStreamQualityDetectionTemplatesRequest request) {
            return await new DescribeCustomLiveStreamQualityDetectionTemplatesExecutor().Client(this).Execute<DescribeCustomLiveStreamQualityDetectionTemplatesResponse, DescribeCustomLiveStreamQualityDetectionTemplatesResult, DescribeCustomLiveStreamQualityDetectionTemplatesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播流状态回调地址
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamNotifyConfigResponse DescribeLiveStreamNotifyConfig(DescribeLiveStreamNotifyConfigRequest request) {
            return  new DescribeLiveStreamNotifyConfigExecutor().Client(this).Execute<DescribeLiveStreamNotifyConfigResponse, DescribeLiveStreamNotifyConfigResult, DescribeLiveStreamNotifyConfigRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播流状态回调地址
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamNotifyConfigResponse> DescribeLiveStreamNotifyConfig(DescribeLiveStreamNotifyConfigRequest request) {
            return await new DescribeLiveStreamNotifyConfigExecutor().Client(this).Execute<DescribeLiveStreamNotifyConfigResponse, DescribeLiveStreamNotifyConfigResult, DescribeLiveStreamNotifyConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询翻译模板配置
        /// - 翻译模板配置按照 域名,应用,流 3级配置添加,以最小的粒度配置生效原则
        /// - 域名、应用、流 依次粒度递减 即: 域名&gt;应用&gt;流
        /// - 该查询旨在查询域名、应用、流最终生效的翻译模板配置,并非各级的模板绑定情况
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamTranslateConfigResponse DescribeLiveStreamTranslateConfig(DescribeLiveStreamTranslateConfigRequest request) {
            return  new DescribeLiveStreamTranslateConfigExecutor().Client(this).Execute<DescribeLiveStreamTranslateConfigResponse, DescribeLiveStreamTranslateConfigResult, DescribeLiveStreamTranslateConfigRequest>(request);
        }
#else
        /// <summary>
        ///  查询翻译模板配置
        /// - 翻译模板配置按照 域名,应用,流 3级配置添加,以最小的粒度配置生效原则
        /// - 域名、应用、流 依次粒度递减 即: 域名&gt;应用&gt;流
        /// - 该查询旨在查询域名、应用、流最终生效的翻译模板配置,并非各级的模板绑定情况
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamTranslateConfigResponse> DescribeLiveStreamTranslateConfig(DescribeLiveStreamTranslateConfigRequest request) {
            return await new DescribeLiveStreamTranslateConfigExecutor().Client(this).Execute<DescribeLiveStreamTranslateConfigResponse, DescribeLiveStreamTranslateConfigResult, DescribeLiveStreamTranslateConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询流分组统计数据(上行)
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLivePublishStatisticGroupByStreamResponse DescribeLivePublishStatisticGroupByStream(DescribeLivePublishStatisticGroupByStreamRequest request) {
            return  new DescribeLivePublishStatisticGroupByStreamExecutor().Client(this).Execute<DescribeLivePublishStatisticGroupByStreamResponse, DescribeLivePublishStatisticGroupByStreamResult, DescribeLivePublishStatisticGroupByStreamRequest>(request);
        }
#else
        /// <summary>
        ///  查询流分组统计数据(上行)
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLivePublishStatisticGroupByStreamResponse> DescribeLivePublishStatisticGroupByStream(DescribeLivePublishStatisticGroupByStreamRequest request) {
            return await new DescribeLivePublishStatisticGroupByStreamExecutor().Client(this).Execute<DescribeLivePublishStatisticGroupByStreamResponse, DescribeLivePublishStatisticGroupByStreamResult, DescribeLivePublishStatisticGroupByStreamRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询直播截图模板列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeCustomLiveStreamSnapshotTemplatesResponse DescribeCustomLiveStreamSnapshotTemplates(DescribeCustomLiveStreamSnapshotTemplatesRequest request) {
            return  new DescribeCustomLiveStreamSnapshotTemplatesExecutor().Client(this).Execute<DescribeCustomLiveStreamSnapshotTemplatesResponse, DescribeCustomLiveStreamSnapshotTemplatesResult, DescribeCustomLiveStreamSnapshotTemplatesRequest>(request);
        }
#else
        /// <summary>
        ///  查询直播截图模板列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeCustomLiveStreamSnapshotTemplatesResponse> DescribeCustomLiveStreamSnapshotTemplates(DescribeCustomLiveStreamSnapshotTemplatesRequest request) {
            return await new DescribeCustomLiveStreamSnapshotTemplatesExecutor().Client(this).Execute<DescribeCustomLiveStreamSnapshotTemplatesResponse, DescribeCustomLiveStreamSnapshotTemplatesResult, DescribeCustomLiveStreamSnapshotTemplatesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  停用 运行中 状态的应用
        /// - 停用应用之后,不能再用此应用名推流
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public StopLiveAppResponse StopLiveApp(StopLiveAppRequest request) {
            return  new StopLiveAppExecutor().Client(this).Execute<StopLiveAppResponse, StopLiveAppResult, StopLiveAppRequest>(request);
        }
#else
        /// <summary>
        ///  停用 运行中 状态的应用
        /// - 停用应用之后,不能再用此应用名推流
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<StopLiveAppResponse> StopLiveApp(StopLiveAppRequest request) {
            return await new StopLiveAppExecutor().Client(this).Execute<StopLiveAppResponse, StopLiveAppResult, StopLiveAppRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询流量数据
        /// - 查询某个时间段内的流量数据。
        /// - 查询1分钟粒度的数据时，时间跨度不超过7天，其他粒度时时间跨度不超过30天
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeLiveStreamTrafficDataResponse DescribeLiveStreamTrafficData(DescribeLiveStreamTrafficDataRequest request) {
            return  new DescribeLiveStreamTrafficDataExecutor().Client(this).Execute<DescribeLiveStreamTrafficDataResponse, DescribeLiveStreamTrafficDataResult, DescribeLiveStreamTrafficDataRequest>(request);
        }
#else
        /// <summary>
        ///  查询流量数据
        /// - 查询某个时间段内的流量数据。
        /// - 查询1分钟粒度的数据时，时间跨度不超过7天，其他粒度时时间跨度不超过30天
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeLiveStreamTrafficDataResponse> DescribeLiveStreamTrafficData(DescribeLiveStreamTrafficDataRequest request) {
            return await new DescribeLiveStreamTrafficDataExecutor().Client(this).Execute<DescribeLiveStreamTrafficDataResponse, DescribeLiveStreamTrafficDataResult, DescribeLiveStreamTrafficDataRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加自定义转码模板
        /// - 系统为您预设了标准转码模板,如果不能满足您的转码需求,可以通过此接口添加自定义转码模板
        /// - 系统标准转码模板
        ///     ld (h.264/640*360/15f)
        ///     sd (h.264/960*540/25f)
        ///     hd (h.264/1280*720/25f)
        ///     shd (h.264/1920*1080/30f)
        ///     ld-265 (h.265/640*360/15f)
        ///     sd-265 (h.265/960*540/25f)
        ///     hd-265 (h.265/1280*720/25f)
        ///     shd-265 (h.265/1920*1080/30f)
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddCustomLiveStreamTranscodeTemplateResponse AddCustomLiveStreamTranscodeTemplate(AddCustomLiveStreamTranscodeTemplateRequest request) {
            return  new AddCustomLiveStreamTranscodeTemplateExecutor().Client(this).Execute<AddCustomLiveStreamTranscodeTemplateResponse, AddCustomLiveStreamTranscodeTemplateResult, AddCustomLiveStreamTranscodeTemplateRequest>(request);
        }
#else
        /// <summary>
        ///  添加自定义转码模板
        /// - 系统为您预设了标准转码模板,如果不能满足您的转码需求,可以通过此接口添加自定义转码模板
        /// - 系统标准转码模板
        ///     ld (h.264/640*360/15f)
        ///     sd (h.264/960*540/25f)
        ///     hd (h.264/1280*720/25f)
        ///     shd (h.264/1920*1080/30f)
        ///     ld-265 (h.265/640*360/15f)
        ///     sd-265 (h.265/960*540/25f)
        ///     hd-265 (h.265/1280*720/25f)
        ///     shd-265 (h.265/1920*1080/30f)
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddCustomLiveStreamTranscodeTemplateResponse> AddCustomLiveStreamTranscodeTemplate(AddCustomLiveStreamTranscodeTemplateRequest request) {
            return await new AddCustomLiveStreamTranscodeTemplateExecutor().Client(this).Execute<AddCustomLiveStreamTranscodeTemplateResponse, AddCustomLiveStreamTranscodeTemplateResult, AddCustomLiveStreamTranscodeTemplateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加应用翻译配置
        /// - 添加应用级别的翻译模板配置
        /// - 一个应用最多可绑定一个翻译模板
        /// - 重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamAppTranslateResponse AddLiveStreamAppTranslate(AddLiveStreamAppTranslateRequest request) {
            return  new AddLiveStreamAppTranslateExecutor().Client(this).Execute<AddLiveStreamAppTranslateResponse, AddLiveStreamAppTranslateResult, AddLiveStreamAppTranslateRequest>(request);
        }
#else
        /// <summary>
        ///  添加应用翻译配置
        /// - 添加应用级别的翻译模板配置
        /// - 一个应用最多可绑定一个翻译模板
        /// - 重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamAppTranslateResponse> AddLiveStreamAppTranslate(AddLiveStreamAppTranslateRequest request) {
            return await new AddLiveStreamAppTranslateExecutor().Client(this).Execute<AddLiveStreamAppTranslateResponse, AddLiveStreamAppTranslateResult, AddLiveStreamAppTranslateRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  添加域名级别转码配置
        /// - 添加域名级别的转码模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AddLiveStreamDomainTranscodeResponse AddLiveStreamDomainTranscode(AddLiveStreamDomainTranscodeRequest request) {
            return  new AddLiveStreamDomainTranscodeExecutor().Client(this).Execute<AddLiveStreamDomainTranscodeResponse, AddLiveStreamDomainTranscodeResult, AddLiveStreamDomainTranscodeRequest>(request);
        }
#else
        /// <summary>
        ///  添加域名级别转码配置
        /// - 添加域名级别的转码模板配置
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AddLiveStreamDomainTranscodeResponse> AddLiveStreamDomainTranscode(AddLiveStreamDomainTranscodeRequest request) {
            return await new AddLiveStreamDomainTranscodeExecutor().Client(this).Execute<AddLiveStreamDomainTranscodeResponse, AddLiveStreamDomainTranscodeResult, AddLiveStreamDomainTranscodeRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除应用级别转码模板配置
        /// - 删除应用级别的转码模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteLiveStreamAppTranscodeResponse DeleteLiveStreamAppTranscode(DeleteLiveStreamAppTranscodeRequest request) {
            return  new DeleteLiveStreamAppTranscodeExecutor().Client(this).Execute<DeleteLiveStreamAppTranscodeResponse, DeleteLiveStreamAppTranscodeResult, DeleteLiveStreamAppTranscodeRequest>(request);
        }
#else
        /// <summary>
        ///  删除应用级别转码模板配置
        /// - 删除应用级别的转码模板配置,重新推流后生效
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteLiveStreamAppTranscodeResponse> DeleteLiveStreamAppTranscode(DeleteLiveStreamAppTranscodeRequest request) {
            return await new DeleteLiveStreamAppTranscodeExecutor().Client(this).Execute<DeleteLiveStreamAppTranscodeResponse, DeleteLiveStreamAppTranscodeResult, DeleteLiveStreamAppTranscodeRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  开启时移
        /// 直播支持最大4小时的HLS时移，使用方式为在播放域名后增加时移参数来实现，参数类型支持指定开始时间和时间偏移量2种方式进行时移。 开启直播时移后，重新推流生效，使用播放域名带相应参数访问即可播放
        /// - 域名格式：
        /// 1、http://{playDomain}/{appName}/{streamName}/index.m3u8?timeshift&#x3D;400（秒，指从当前时间往前时移的偏移量）
        /// 2、http://{playDomain}/{appName}/{streamName}/index.m3u8?starttime&#x3D;1529223702 (unix时间戳)
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public OpenLiveTimeshiftResponse OpenLiveTimeshift(OpenLiveTimeshiftRequest request) {
            return  new OpenLiveTimeshiftExecutor().Client(this).Execute<OpenLiveTimeshiftResponse, OpenLiveTimeshiftResult, OpenLiveTimeshiftRequest>(request);
        }
#else
        /// <summary>
        ///  开启时移
        /// 直播支持最大4小时的HLS时移，使用方式为在播放域名后增加时移参数来实现，参数类型支持指定开始时间和时间偏移量2种方式进行时移。 开启直播时移后，重新推流生效，使用播放域名带相应参数访问即可播放
        /// - 域名格式：
        /// 1、http://{playDomain}/{appName}/{streamName}/index.m3u8?timeshift&#x3D;400（秒，指从当前时间往前时移的偏移量）
        /// 2、http://{playDomain}/{appName}/{streamName}/index.m3u8?starttime&#x3D;1529223702 (unix时间戳)
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<OpenLiveTimeshiftResponse> OpenLiveTimeshift(OpenLiveTimeshiftRequest request) {
            return await new OpenLiveTimeshiftExecutor().Client(this).Execute<OpenLiveTimeshiftResponse, OpenLiveTimeshiftResult, OpenLiveTimeshiftRequest>(request).ConfigureAwait(false);
        }
#endif

            /// <summary>
            ///  默认LiveClient 构造器 接口
            ///</summary>
            public interface Builder
            {

                /// <summary>
                /// 设置认证信息参数
                /// </summary>
                /// <param name="provider">认证信息提供对象</param>
                /// <returns>liveClient 构造器</returns>
                Builder CredentialsProvider(CredentialsProvider provider);

                /// <summary>
                /// 设置请求环境参数
                /// </summary>
                /// <param name="environment">环境参数信息</param>
                /// <returns>liveClient 构造器</returns>
                Builder Environment(Core.Client.SDKEnvironment environment);

                /// <summary>
                /// http 请求配置信息
                /// </summary>
                /// <param name="config">http 请求配置信息</param>
                /// <returns>liveClient 构造器</returns>
                Builder HttpRequestConfig(HttpRequestConfig config);

                /// <summary>
                ///  构造LiveClient 对象
                ///</summary>
                LiveClient Build();
            }

            /// <summary>
            ///  默认LiveClient 构造器
            ///</summary>
            public class DefaultBuilder : Builder
            {
                /// <summary>
                ///  LiveClient service client
                /// </summary>
                private  LiveClient liveClient;

                /// <summary>
                ///  默认LiveClient 构造器构造对象
                ///</summary>
                public DefaultBuilder()
                {
                    liveClient = new LiveClient();
                }

                /// <summary>
                ///  构造LiveClient 对象
                ///</summary>
                public LiveClient Build()
                {
                    if (liveClient.CredentialsProvider == null)
                    {
                        //if credentialsProvider not set, try load jdcloud global default  credentials provider
                        liveClient.credentialsProvider = JdCloud.DefaultInstance.GetCredentialsProvider();
                        if (liveClient.credentialsProvider == null)
                        {
                            throw new ArgumentNullException("LiveClient build error: jdcloud credentials provider not set");
                        }
                    }
                    if (liveClient.HttpRequestConfig == null)
                    {
                        liveClient.httpRequestConfig = JdCloud.DefaultInstance.GetHttpRequestConfig();
                        if (liveClient.httpRequestConfig == null)
                        {
                        throw new ArgumentNullException("LiveClient build error: http request config not set");
                        }
                    }
                    return liveClient;
                }

                /// <summary>
                /// 设置认证信息参数
                /// </summary>
                /// <param name="provider">认证信息提供对象</param>
                /// <returns>liveClient 构造器</returns>
                public Builder CredentialsProvider(CredentialsProvider provider)
                {
                    liveClient.credentialsProvider = provider;
                    return this;
                }

                /// <summary>
                /// 设置请求环境参数
                /// </summary>
                /// <param name="environment">环境参数信息</param>
                /// <returns>liveClient 构造器</returns>
                public Builder Environment(SDKEnvironment environment)
                {
                    liveClient.environment = environment;
                    return this;
                }

                /// <summary>
                /// http 请求配置信息
                /// </summary>
                /// <param name="config">http 请求配置信息</param>
                /// <returns>liveClient 构造器</returns>
                public Builder HttpRequestConfig(HttpRequestConfig config)
                {
                    liveClient.httpRequestConfig = config;
                    return this;
                }
            }
    }
}
